[test-suite] r214126 - ABI-Testsuite: Bulk of the testsuite
Sunil Srivastava
sunil_srivastava at playstation.sony.com
Mon Jul 28 14:20:39 PDT 2014
Added: test-suite/trunk/ABI-Testsuite/test/s2_6/T_ksc0.x
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/ABI-Testsuite/test/s2_6/T_ksc0.x?rev=214126&view=auto
==============================================================================
--- test-suite/trunk/ABI-Testsuite/test/s2_6/T_ksc0.x (added)
+++ test-suite/trunk/ABI-Testsuite/test/s2_6/T_ksc0.x Mon Jul 28 16:20:34 2014
@@ -0,0 +1,286934 @@
+// 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 bb00 : aa0 {
+ int b;
+};
+//SIG(-1 bb00) C1{ BC2{ Fi} Fi}
+
+
+
+static void Test_bb00()
+{
+ extern Class_Descriptor cd_bb00;
+ void *lvp;
+ {
+ int buf[3];
+ init_test(&cd_bb00, buf);
+ bb00 &lv = *(new (buf) bb00());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), 8, "sizeof(bb00)");
+ check2(__alignof__(lv), 4, "__alignof__(bb00)");
+ check_base_class_offset(lv, (aa0*), 0, "bb00");
+ check_field_offset(lv, b, 4, "bb00.b");
+ test_class_info(&lv, &cd_bb00);
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb00(Test_bb00, "bb00", 8);
+
+#else // __cplusplus
+
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+static Base_Class bases_bb00[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4bb00[];
+Class_Descriptor cd_bb00 = { "bb00", // class name
+ bases_bb00, 1,
+ 0, // no vftv
+ 0, //no vtt
+ 8, // object size
+ NSPAIRA(_ZTI4bb00),ABISELECT(24,12), //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 cc000 : bb00 {
+ int c;
+};
+//SIG(-1 cc000) C1{ BC2{ BC3{ Fi} Fi} Fi}
+
+
+
+static void Test_cc000()
+{
+ extern Class_Descriptor cd_cc000;
+ void *lvp;
+ {
+ int buf[4];
+ init_test(&cd_cc000, buf);
+ cc000 &lv = *(new (buf) cc000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), 12, "sizeof(cc000)");
+ check2(__alignof__(lv), 4, "__alignof__(cc000)");
+ check_base_class_offset(lv, (aa0*)(bb00*), 0, "cc000");
+ check_base_class_offset(lv, (bb00*), 0, "cc000");
+ check_field_offset(lv, c, 8, "cc000.c");
+ test_class_info(&lv, &cd_cc000);
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc000(Test_cc000, "cc000", 12);
+
+#else // __cplusplus
+
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+static Base_Class bases_cc000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI5cc000[];
+Class_Descriptor cd_cc000 = { "cc000", // class name
+ bases_cc000, 2,
+ 0, // no vftv
+ 0, //no vtt
+ 12, // object size
+ NSPAIRA(_ZTI5cc000),ABISELECT(24,12), //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 dd0000 : cc000 {
+ int d;
+};
+//SIG(-1 dd0000) C1{ BC2{ BC3{ BC4{ Fi} Fi} Fi} Fi}
+
+
+
+static void Test_dd0000()
+{
+ extern Class_Descriptor cd_dd0000;
+ void *lvp;
+ {
+ int buf[5];
+ init_test(&cd_dd0000, buf);
+ dd0000 &lv = *(new (buf) dd0000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), 16, "sizeof(dd0000)");
+ check2(__alignof__(lv), 4, "__alignof__(dd0000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), 0, "dd0000");
+ check_base_class_offset(lv, (bb00*)(cc000*), 0, "dd0000");
+ check_base_class_offset(lv, (cc000*), 0, "dd0000");
+ check_field_offset(lv, d, 12, "dd0000.d");
+ test_class_info(&lv, &cd_dd0000);
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0000(Test_dd0000, "dd0000", 16);
+
+#else // __cplusplus
+
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+static Base_Class bases_dd0000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd0000[];
+Class_Descriptor cd_dd0000 = { "dd0000", // class name
+ bases_dd0000, 3,
+ 0, // no vftv
+ 0, //no vtt
+ 16, // object size
+ NSPAIRA(_ZTI6dd0000),ABISELECT(24,12), //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 ee00000 : dd0000 {
+ int e;
+};
+//SIG(1 ee00000) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} Fi} Fi} Fi}
+
+
+
+static void Test_ee00000()
+{
+ extern Class_Descriptor cd_ee00000;
+ void *lvp;
+ {
+ int buf[6];
+ init_test(&cd_ee00000, buf);
+ ee00000 &lv = *(new (buf) ee00000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), 20, "sizeof(ee00000)");
+ check2(__alignof__(lv), 4, "__alignof__(ee00000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*)(dd0000*), 0, "ee00000");
+ check_base_class_offset(lv, (bb00*)(cc000*)(dd0000*), 0, "ee00000");
+ check_base_class_offset(lv, (cc000*)(dd0000*), 0, "ee00000");
+ check_base_class_offset(lv, (dd0000*), 0, "ee00000");
+ check_field_offset(lv, e, 16, "ee00000.e");
+ test_class_info(&lv, &cd_ee00000);
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00000(Test_ee00000, "ee00000", 20);
+
+#else // __cplusplus
+
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd0000;
+extern VTBL_ENTRY _ZTI6dd0000[];
+static Base_Class bases_ee00000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0000, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+Class_Descriptor cd_ee00000 = { "ee00000", // class name
+ bases_ee00000, 4,
+ 0, // no vftv
+ 0, //no vtt
+ 20, // object size
+ {0,0},0, // 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 ee10000 : virtual dd0000 {
+ int e;
+ ~ee10000(); // tgen
+ ee10000(); // tgen
+};
+//SIG(1 ee10000) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} Fi} Fi} Fi}
+
+
+ee10000 ::~ee10000(){ note_dtor("ee10000", this);} // tgen
+ee10000 ::ee10000(){ note_ctor("ee10000", this);} // tgen
+
+static void Test_ee10000()
+{
+ extern Class_Descriptor cd_ee10000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee10000, buf);
+ ee10000 *dp, &lv = *(dp=new (buf) ee10000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee10000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*)(dd0000*), ABISELECT(12,8), "ee10000");
+ check_base_class_offset(lv, (bb00*)(cc000*)(dd0000*), ABISELECT(12,8), "ee10000");
+ check_base_class_offset(lv, (cc000*)(dd0000*), ABISELECT(12,8), "ee10000");
+ check_base_class_offset(lv, (dd0000*), ABISELECT(12,8), "ee10000");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10000.e");
+ test_class_info(&lv, &cd_ee10000);
+ dp->~ee10000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10000(Test_ee10000, "ee10000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee10000C1Ev();
+extern void _ZN7ee10000D1Ev();
+Name_Map name_map_ee10000[] = {
+ NSPAIR(_ZN7ee10000C1Ev),
+ NSPAIR(_ZN7ee10000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd0000;
+extern VTBL_ENTRY _ZTI6dd0000[];
+static Base_Class bases_ee10000[] = {
+ // 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
+ 0, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, 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
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0000, 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 _ZTI7ee10000[];
+static VTBL_ENTRY vtc_ee10000[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10000[0]),
+};
+extern VTBL_ENTRY _ZTV7ee10000[];
+static VTT_ENTRY vtt_ee10000[] = {
+ {&(_ZTV7ee10000[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee10000[];
+extern VTBL_ENTRY _ZTV7ee10000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10000[];
+Class_Descriptor cd_ee10000 = { "ee10000", // class name
+ bases_ee10000, 4,
+ &(vtc_ee10000[0]), // expected_vtbl_contents
+ &(vtt_ee10000[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee10000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10000),3, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10000),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 ee20000 : dd0000 {
+ int e;
+ virtual void foo(); // _ZN7ee200003fooEv
+ ~ee20000(); // tgen
+ ee20000(); // tgen
+};
+//SIG(1 ee20000) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} Fi} Fi} v1 Fi}
+
+
+void ee20000 ::foo(){vfunc_called(this, "_ZN7ee200003fooEv");}
+ee20000 ::~ee20000(){ note_dtor("ee20000", this);} // tgen
+ee20000 ::ee20000(){ note_ctor("ee20000", this);} // tgen
+
+static void Test_ee20000()
+{
+ extern Class_Descriptor cd_ee20000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee20000, buf);
+ ee20000 *dp, &lv = *(dp=new (buf) ee20000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee20000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*)(dd0000*), ABISELECT(8,4), "ee20000");
+ check_base_class_offset(lv, (bb00*)(cc000*)(dd0000*), ABISELECT(8,4), "ee20000");
+ check_base_class_offset(lv, (cc000*)(dd0000*), ABISELECT(8,4), "ee20000");
+ check_base_class_offset(lv, (dd0000*), ABISELECT(8,4), "ee20000");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee20000.e");
+ test_class_info(&lv, &cd_ee20000);
+ dp->~ee20000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20000(Test_ee20000, "ee20000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee20000C1Ev();
+extern void _ZN7ee20000D1Ev();
+Name_Map name_map_ee20000[] = {
+ NSPAIR(_ZN7ee20000C1Ev),
+ NSPAIR(_ZN7ee20000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd0000;
+extern VTBL_ENTRY _ZTI6dd0000[];
+static Base_Class bases_ee20000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0000, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20000[];
+extern void _ZN7ee200003fooEv();
+static VTBL_ENTRY vtc_ee20000[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20000[0]),
+ (VTBL_ENTRY)&_ZN7ee200003fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee20000[];
+extern VTBL_ENTRY _ZTV7ee20000[];
+Class_Descriptor cd_ee20000 = { "ee20000", // class name
+ bases_ee20000, 4,
+ &(vtc_ee20000[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee20000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee20000),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee30000 : virtual dd0000 {
+ int e;
+ virtual void foo(); // _ZN7ee300003fooEv
+ ~ee30000(); // tgen
+ ee30000(); // tgen
+};
+//SIG(1 ee30000) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} Fi} Fi} v1 Fi}
+
+
+void ee30000 ::foo(){vfunc_called(this, "_ZN7ee300003fooEv");}
+ee30000 ::~ee30000(){ note_dtor("ee30000", this);} // tgen
+ee30000 ::ee30000(){ note_ctor("ee30000", this);} // tgen
+
+static void Test_ee30000()
+{
+ extern Class_Descriptor cd_ee30000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee30000, buf);
+ ee30000 *dp, &lv = *(dp=new (buf) ee30000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee30000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*)(dd0000*), ABISELECT(12,8), "ee30000");
+ check_base_class_offset(lv, (bb00*)(cc000*)(dd0000*), ABISELECT(12,8), "ee30000");
+ check_base_class_offset(lv, (cc000*)(dd0000*), ABISELECT(12,8), "ee30000");
+ check_base_class_offset(lv, (dd0000*), ABISELECT(12,8), "ee30000");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30000.e");
+ test_class_info(&lv, &cd_ee30000);
+ dp->~ee30000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30000(Test_ee30000, "ee30000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee30000C1Ev();
+extern void _ZN7ee30000D1Ev();
+Name_Map name_map_ee30000[] = {
+ NSPAIR(_ZN7ee30000C1Ev),
+ NSPAIR(_ZN7ee30000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd0000;
+extern VTBL_ENTRY _ZTI6dd0000[];
+static Base_Class bases_ee30000[] = {
+ // 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
+ 0, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, 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
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0000, 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 _ZTI7ee30000[];
+extern void _ZN7ee300003fooEv();
+static VTBL_ENTRY vtc_ee30000[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30000[0]),
+ (VTBL_ENTRY)&_ZN7ee300003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee30000[];
+static VTT_ENTRY vtt_ee30000[] = {
+ {&(_ZTV7ee30000[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee30000[];
+extern VTBL_ENTRY _ZTV7ee30000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30000[];
+Class_Descriptor cd_ee30000 = { "ee30000", // class name
+ bases_ee30000, 4,
+ &(vtc_ee30000[0]), // expected_vtbl_contents
+ &(vtt_ee30000[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee30000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30000),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30000),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 ee40000 : dd0000 {
+ int e;
+ virtual void bar(); // _ZN7ee400003barEv
+ ~ee40000(); // tgen
+ ee40000(); // tgen
+};
+//SIG(1 ee40000) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} Fi} Fi} v1 Fi}
+
+
+void ee40000 ::bar(){vfunc_called(this, "_ZN7ee400003barEv");}
+ee40000 ::~ee40000(){ note_dtor("ee40000", this);} // tgen
+ee40000 ::ee40000(){ note_ctor("ee40000", this);} // tgen
+
+static void Test_ee40000()
+{
+ extern Class_Descriptor cd_ee40000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee40000, buf);
+ ee40000 *dp, &lv = *(dp=new (buf) ee40000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee40000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*)(dd0000*), ABISELECT(8,4), "ee40000");
+ check_base_class_offset(lv, (bb00*)(cc000*)(dd0000*), ABISELECT(8,4), "ee40000");
+ check_base_class_offset(lv, (cc000*)(dd0000*), ABISELECT(8,4), "ee40000");
+ check_base_class_offset(lv, (dd0000*), ABISELECT(8,4), "ee40000");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee40000.e");
+ test_class_info(&lv, &cd_ee40000);
+ dp->~ee40000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40000(Test_ee40000, "ee40000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee40000C1Ev();
+extern void _ZN7ee40000D1Ev();
+Name_Map name_map_ee40000[] = {
+ NSPAIR(_ZN7ee40000C1Ev),
+ NSPAIR(_ZN7ee40000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd0000;
+extern VTBL_ENTRY _ZTI6dd0000[];
+static Base_Class bases_ee40000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0000, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40000[];
+extern void _ZN7ee400003barEv();
+static VTBL_ENTRY vtc_ee40000[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40000[0]),
+ (VTBL_ENTRY)&_ZN7ee400003barEv,
+};
+extern VTBL_ENTRY _ZTI7ee40000[];
+extern VTBL_ENTRY _ZTV7ee40000[];
+Class_Descriptor cd_ee40000 = { "ee40000", // class name
+ bases_ee40000, 4,
+ &(vtc_ee40000[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee40000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee40000),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee50000 : virtual dd0000 {
+ int e;
+ virtual void bar(); // _ZN7ee500003barEv
+ ~ee50000(); // tgen
+ ee50000(); // tgen
+};
+//SIG(1 ee50000) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} Fi} Fi} v1 Fi}
+
+
+void ee50000 ::bar(){vfunc_called(this, "_ZN7ee500003barEv");}
+ee50000 ::~ee50000(){ note_dtor("ee50000", this);} // tgen
+ee50000 ::ee50000(){ note_ctor("ee50000", this);} // tgen
+
+static void Test_ee50000()
+{
+ extern Class_Descriptor cd_ee50000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee50000, buf);
+ ee50000 *dp, &lv = *(dp=new (buf) ee50000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee50000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*)(dd0000*), ABISELECT(12,8), "ee50000");
+ check_base_class_offset(lv, (bb00*)(cc000*)(dd0000*), ABISELECT(12,8), "ee50000");
+ check_base_class_offset(lv, (cc000*)(dd0000*), ABISELECT(12,8), "ee50000");
+ check_base_class_offset(lv, (dd0000*), ABISELECT(12,8), "ee50000");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50000.e");
+ test_class_info(&lv, &cd_ee50000);
+ dp->~ee50000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50000(Test_ee50000, "ee50000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee50000C1Ev();
+extern void _ZN7ee50000D1Ev();
+Name_Map name_map_ee50000[] = {
+ NSPAIR(_ZN7ee50000C1Ev),
+ NSPAIR(_ZN7ee50000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd0000;
+extern VTBL_ENTRY _ZTI6dd0000[];
+static Base_Class bases_ee50000[] = {
+ // 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
+ 0, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, 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
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0000, 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 _ZTI7ee50000[];
+extern void _ZN7ee500003barEv();
+static VTBL_ENTRY vtc_ee50000[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50000[0]),
+ (VTBL_ENTRY)&_ZN7ee500003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee50000[];
+static VTT_ENTRY vtt_ee50000[] = {
+ {&(_ZTV7ee50000[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee50000[];
+extern VTBL_ENTRY _ZTV7ee50000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50000[];
+Class_Descriptor cd_ee50000 = { "ee50000", // class name
+ bases_ee50000, 4,
+ &(vtc_ee50000[0]), // expected_vtbl_contents
+ &(vtt_ee50000[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee50000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50000),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50000),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 ee60000 : dd0000 {
+ int e;
+ virtual void foo(); // _ZN7ee600003fooEv
+ virtual void bar(); // _ZN7ee600003barEv
+ ~ee60000(); // tgen
+ ee60000(); // tgen
+};
+//SIG(1 ee60000) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee60000 ::foo(){vfunc_called(this, "_ZN7ee600003fooEv");}
+void ee60000 ::bar(){vfunc_called(this, "_ZN7ee600003barEv");}
+ee60000 ::~ee60000(){ note_dtor("ee60000", this);} // tgen
+ee60000 ::ee60000(){ note_ctor("ee60000", this);} // tgen
+
+static void Test_ee60000()
+{
+ extern Class_Descriptor cd_ee60000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee60000, buf);
+ ee60000 *dp, &lv = *(dp=new (buf) ee60000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee60000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*)(dd0000*), ABISELECT(8,4), "ee60000");
+ check_base_class_offset(lv, (bb00*)(cc000*)(dd0000*), ABISELECT(8,4), "ee60000");
+ check_base_class_offset(lv, (cc000*)(dd0000*), ABISELECT(8,4), "ee60000");
+ check_base_class_offset(lv, (dd0000*), ABISELECT(8,4), "ee60000");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee60000.e");
+ test_class_info(&lv, &cd_ee60000);
+ dp->~ee60000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60000(Test_ee60000, "ee60000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee60000C1Ev();
+extern void _ZN7ee60000D1Ev();
+Name_Map name_map_ee60000[] = {
+ NSPAIR(_ZN7ee60000C1Ev),
+ NSPAIR(_ZN7ee60000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd0000;
+extern VTBL_ENTRY _ZTI6dd0000[];
+static Base_Class bases_ee60000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0000, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60000[];
+extern void _ZN7ee600003fooEv();
+extern void _ZN7ee600003barEv();
+static VTBL_ENTRY vtc_ee60000[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60000[0]),
+ (VTBL_ENTRY)&_ZN7ee600003fooEv,
+ (VTBL_ENTRY)&_ZN7ee600003barEv,
+};
+extern VTBL_ENTRY _ZTI7ee60000[];
+extern VTBL_ENTRY _ZTV7ee60000[];
+Class_Descriptor cd_ee60000 = { "ee60000", // class name
+ bases_ee60000, 4,
+ &(vtc_ee60000[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee60000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee60000),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 ee70000 : virtual dd0000 {
+ int e;
+ virtual void foo(); // _ZN7ee700003fooEv
+ virtual void bar(); // _ZN7ee700003barEv
+ ~ee70000(); // tgen
+ ee70000(); // tgen
+};
+//SIG(1 ee70000) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee70000 ::foo(){vfunc_called(this, "_ZN7ee700003fooEv");}
+void ee70000 ::bar(){vfunc_called(this, "_ZN7ee700003barEv");}
+ee70000 ::~ee70000(){ note_dtor("ee70000", this);} // tgen
+ee70000 ::ee70000(){ note_ctor("ee70000", this);} // tgen
+
+static void Test_ee70000()
+{
+ extern Class_Descriptor cd_ee70000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee70000, buf);
+ ee70000 *dp, &lv = *(dp=new (buf) ee70000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee70000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*)(dd0000*), ABISELECT(12,8), "ee70000");
+ check_base_class_offset(lv, (bb00*)(cc000*)(dd0000*), ABISELECT(12,8), "ee70000");
+ check_base_class_offset(lv, (cc000*)(dd0000*), ABISELECT(12,8), "ee70000");
+ check_base_class_offset(lv, (dd0000*), ABISELECT(12,8), "ee70000");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70000.e");
+ test_class_info(&lv, &cd_ee70000);
+ dp->~ee70000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70000(Test_ee70000, "ee70000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee70000C1Ev();
+extern void _ZN7ee70000D1Ev();
+Name_Map name_map_ee70000[] = {
+ NSPAIR(_ZN7ee70000C1Ev),
+ NSPAIR(_ZN7ee70000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd0000;
+extern VTBL_ENTRY _ZTI6dd0000[];
+static Base_Class bases_ee70000[] = {
+ // 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
+ 0, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, 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
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0000, 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 _ZTI7ee70000[];
+extern void _ZN7ee700003fooEv();
+extern void _ZN7ee700003barEv();
+static VTBL_ENTRY vtc_ee70000[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70000[0]),
+ (VTBL_ENTRY)&_ZN7ee700003fooEv,
+ (VTBL_ENTRY)&_ZN7ee700003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee70000[];
+static VTT_ENTRY vtt_ee70000[] = {
+ {&(_ZTV7ee70000[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee70000[];
+extern VTBL_ENTRY _ZTV7ee70000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70000[];
+Class_Descriptor cd_ee70000 = { "ee70000", // class name
+ bases_ee70000, 4,
+ &(vtc_ee70000[0]), // expected_vtbl_contents
+ &(vtt_ee70000[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee70000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70000),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70000),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 dd1000 : virtual cc000 {
+ int d;
+ ~dd1000(); // tgen
+ dd1000(); // tgen
+};
+//SIG(-1 dd1000) C1{ VBC2{ BC3{ BC4{ Fi} Fi} Fi} Fi}
+
+
+dd1000 ::~dd1000(){ note_dtor("dd1000", this);} // tgen
+dd1000 ::dd1000(){ note_ctor("dd1000", this);} // tgen
+
+static void Test_dd1000()
+{
+ extern Class_Descriptor cd_dd1000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd1000, buf);
+ dd1000 *dp, &lv = *(dp=new (buf) dd1000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd1000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(12,8), "dd1000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(12,8), "dd1000");
+ check_base_class_offset(lv, (cc000*), ABISELECT(12,8), "dd1000");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1000.d");
+ test_class_info(&lv, &cd_dd1000);
+ dp->~dd1000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1000(Test_dd1000, "dd1000", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd1000C1Ev();
+extern void _ZN6dd1000D1Ev();
+Name_Map name_map_dd1000[] = {
+ NSPAIR(_ZN6dd1000C1Ev),
+ NSPAIR(_ZN6dd1000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+static Base_Class bases_dd1000[] = {
+ // 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
+ 0, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, 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 _ZTI6dd1000[];
+static VTBL_ENTRY vtc_dd1000[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1000[0]),
+};
+extern VTBL_ENTRY _ZTV6dd1000[];
+static VTT_ENTRY vtt_dd1000[] = {
+ {&(_ZTV6dd1000[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI6dd1000[];
+extern VTBL_ENTRY _ZTV6dd1000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1000[];
+Class_Descriptor cd_dd1000 = { "dd1000", // class name
+ bases_dd1000, 3,
+ &(vtc_dd1000[0]), // expected_vtbl_contents
+ &(vtt_dd1000[0]), // expected_vtt_contents
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd1000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1000),3, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1000),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 ee01000 : dd1000 {
+ int e;
+ ~ee01000(); // tgen
+ ee01000(); // tgen
+};
+//SIG(1 ee01000) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} Fi} Fi} Fi}
+
+
+ee01000 ::~ee01000(){ note_dtor("ee01000", this);} // tgen
+ee01000 ::ee01000(){ note_ctor("ee01000", this);} // tgen
+
+static void Test_ee01000()
+{
+ extern Class_Descriptor cd_ee01000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee01000, buf);
+ ee01000 *dp, &lv = *(dp=new (buf) ee01000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee01000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(16,12), "ee01000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(16,12), "ee01000");
+ check_base_class_offset(lv, (cc000*)(dd1000*), ABISELECT(16,12), "ee01000");
+ check_base_class_offset(lv, (dd1000*), 0, "ee01000");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01000.e");
+ test_class_info(&lv, &cd_ee01000);
+ dp->~ee01000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01000(Test_ee01000, "ee01000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee01000C1Ev();
+extern void _ZN7ee01000D1Ev();
+Name_Map name_map_ee01000[] = {
+ NSPAIR(_ZN7ee01000C1Ev),
+ NSPAIR(_ZN7ee01000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd1000;
+extern VTBL_ENTRY _ZTI6dd1000[];
+extern VTBL_ENTRY _ZTV6dd1000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1000[];
+static Base_Class bases_ee01000[] = {
+ // 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, 0},
+ {&cd_bb00, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1000, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee01000[];
+static VTBL_ENTRY vtc_ee01000[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01000[0]),
+};
+extern VTBL_ENTRY _ZTV7ee01000[];
+static VTBL_ENTRY _tg__ZTV6dd1000__7ee01000[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1000[0]),
+};
+static VTT_ENTRY vtt_ee01000[] = {
+ {&(_ZTV7ee01000[3]), 3,3},
+ {&(_tg__ZTV6dd1000__7ee01000[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee01000[];
+extern VTBL_ENTRY _ZTV7ee01000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01000[];
+Class_Descriptor cd_ee01000 = { "ee01000", // class name
+ bases_ee01000, 4,
+ &(vtc_ee01000[0]), // expected_vtbl_contents
+ &(vtt_ee01000[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee01000),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01000),3, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01000),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 ee11000 : virtual dd1000 {
+ int e;
+ ~ee11000(); // tgen
+ ee11000(); // tgen
+};
+//SIG(1 ee11000) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} Fi} Fi} Fi}
+
+
+ee11000 ::~ee11000(){ note_dtor("ee11000", this);} // tgen
+ee11000 ::ee11000(){ note_ctor("ee11000", this);} // tgen
+
+static void Test_ee11000()
+{
+ extern Class_Descriptor cd_ee11000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee11000, buf);
+ ee11000 *dp, &lv = *(dp=new (buf) ee11000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee11000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(28,16), "ee11000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(28,16), "ee11000");
+ check_base_class_offset(lv, (cc000*)(dd1000*), ABISELECT(28,16), "ee11000");
+ check_base_class_offset(lv, (dd1000*), ABISELECT(16,8), "ee11000");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11000.e");
+ test_class_info(&lv, &cd_ee11000);
+ dp->~ee11000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11000(Test_ee11000, "ee11000", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee11000C1Ev();
+extern void _ZN7ee11000D1Ev();
+Name_Map name_map_ee11000[] = {
+ NSPAIR(_ZN7ee11000C1Ev),
+ NSPAIR(_ZN7ee11000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd1000;
+extern VTBL_ENTRY _ZTI6dd1000[];
+extern VTBL_ENTRY _ZTV6dd1000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1000[];
+static Base_Class bases_ee11000[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1000, 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
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee11000[];
+static VTBL_ENTRY vtc_ee11000[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11000[0]),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11000[0]),
+};
+extern VTBL_ENTRY _ZTV7ee11000[];
+static VTBL_ENTRY _tg__ZTV6dd1000__7ee11000[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1000[0]),
+};
+static VTT_ENTRY vtt_ee11000[] = {
+ {&(_ZTV7ee11000[4]), 4,7},
+ {&(_ZTV7ee11000[7]), 7,7},
+ {&(_tg__ZTV6dd1000__7ee11000[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee11000[];
+extern VTBL_ENTRY _ZTV7ee11000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11000[];
+Class_Descriptor cd_ee11000 = { "ee11000", // class name
+ bases_ee11000, 4,
+ &(vtc_ee11000[0]), // expected_vtbl_contents
+ &(vtt_ee11000[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee11000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11000),7, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11000),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 ee21000 : dd1000 {
+ int e;
+ virtual void foo(); // _ZN7ee210003fooEv
+ ~ee21000(); // tgen
+ ee21000(); // tgen
+};
+//SIG(1 ee21000) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} Fi} Fi} v1 Fi}
+
+
+void ee21000 ::foo(){vfunc_called(this, "_ZN7ee210003fooEv");}
+ee21000 ::~ee21000(){ note_dtor("ee21000", this);} // tgen
+ee21000 ::ee21000(){ note_ctor("ee21000", this);} // tgen
+
+static void Test_ee21000()
+{
+ extern Class_Descriptor cd_ee21000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee21000, buf);
+ ee21000 *dp, &lv = *(dp=new (buf) ee21000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee21000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(16,12), "ee21000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(16,12), "ee21000");
+ check_base_class_offset(lv, (cc000*)(dd1000*), ABISELECT(16,12), "ee21000");
+ check_base_class_offset(lv, (dd1000*), 0, "ee21000");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21000.e");
+ test_class_info(&lv, &cd_ee21000);
+ dp->~ee21000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21000(Test_ee21000, "ee21000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee21000C1Ev();
+extern void _ZN7ee21000D1Ev();
+Name_Map name_map_ee21000[] = {
+ NSPAIR(_ZN7ee21000C1Ev),
+ NSPAIR(_ZN7ee21000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd1000;
+extern VTBL_ENTRY _ZTI6dd1000[];
+extern VTBL_ENTRY _ZTV6dd1000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1000[];
+static Base_Class bases_ee21000[] = {
+ // 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, 0},
+ {&cd_bb00, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1000, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee21000[];
+extern void _ZN7ee210003fooEv();
+static VTBL_ENTRY vtc_ee21000[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21000[0]),
+ (VTBL_ENTRY)&_ZN7ee210003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee21000[];
+static VTBL_ENTRY _tg__ZTV6dd1000__7ee21000[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1000[0]),
+};
+static VTT_ENTRY vtt_ee21000[] = {
+ {&(_ZTV7ee21000[3]), 3,4},
+ {&(_tg__ZTV6dd1000__7ee21000[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee21000[];
+extern VTBL_ENTRY _ZTV7ee21000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21000[];
+Class_Descriptor cd_ee21000 = { "ee21000", // class name
+ bases_ee21000, 4,
+ &(vtc_ee21000[0]), // expected_vtbl_contents
+ &(vtt_ee21000[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee21000),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21000),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21000),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 ee31000 : virtual dd1000 {
+ int e;
+ virtual void foo(); // _ZN7ee310003fooEv
+ ~ee31000(); // tgen
+ ee31000(); // tgen
+};
+//SIG(1 ee31000) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} Fi} Fi} v1 Fi}
+
+
+void ee31000 ::foo(){vfunc_called(this, "_ZN7ee310003fooEv");}
+ee31000 ::~ee31000(){ note_dtor("ee31000", this);} // tgen
+ee31000 ::ee31000(){ note_ctor("ee31000", this);} // tgen
+
+static void Test_ee31000()
+{
+ extern Class_Descriptor cd_ee31000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee31000, buf);
+ ee31000 *dp, &lv = *(dp=new (buf) ee31000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee31000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(28,16), "ee31000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(28,16), "ee31000");
+ check_base_class_offset(lv, (cc000*)(dd1000*), ABISELECT(28,16), "ee31000");
+ check_base_class_offset(lv, (dd1000*), ABISELECT(16,8), "ee31000");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31000.e");
+ test_class_info(&lv, &cd_ee31000);
+ dp->~ee31000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31000(Test_ee31000, "ee31000", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee31000C1Ev();
+extern void _ZN7ee31000D1Ev();
+Name_Map name_map_ee31000[] = {
+ NSPAIR(_ZN7ee31000C1Ev),
+ NSPAIR(_ZN7ee31000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd1000;
+extern VTBL_ENTRY _ZTI6dd1000[];
+extern VTBL_ENTRY _ZTV6dd1000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1000[];
+static Base_Class bases_ee31000[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1000, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee31000[];
+extern void _ZN7ee310003fooEv();
+static VTBL_ENTRY vtc_ee31000[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31000[0]),
+ (VTBL_ENTRY)&_ZN7ee310003fooEv,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31000[0]),
+};
+extern VTBL_ENTRY _ZTV7ee31000[];
+static VTBL_ENTRY _tg__ZTV6dd1000__7ee31000[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1000[0]),
+};
+static VTT_ENTRY vtt_ee31000[] = {
+ {&(_ZTV7ee31000[4]), 4,8},
+ {&(_ZTV7ee31000[8]), 8,8},
+ {&(_tg__ZTV6dd1000__7ee31000[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee31000[];
+extern VTBL_ENTRY _ZTV7ee31000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31000[];
+Class_Descriptor cd_ee31000 = { "ee31000", // class name
+ bases_ee31000, 4,
+ &(vtc_ee31000[0]), // expected_vtbl_contents
+ &(vtt_ee31000[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee31000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31000),8, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31000),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 ee41000 : dd1000 {
+ int e;
+ virtual void bar(); // _ZN7ee410003barEv
+ ~ee41000(); // tgen
+ ee41000(); // tgen
+};
+//SIG(1 ee41000) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} Fi} Fi} v1 Fi}
+
+
+void ee41000 ::bar(){vfunc_called(this, "_ZN7ee410003barEv");}
+ee41000 ::~ee41000(){ note_dtor("ee41000", this);} // tgen
+ee41000 ::ee41000(){ note_ctor("ee41000", this);} // tgen
+
+static void Test_ee41000()
+{
+ extern Class_Descriptor cd_ee41000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee41000, buf);
+ ee41000 *dp, &lv = *(dp=new (buf) ee41000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee41000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(16,12), "ee41000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(16,12), "ee41000");
+ check_base_class_offset(lv, (cc000*)(dd1000*), ABISELECT(16,12), "ee41000");
+ check_base_class_offset(lv, (dd1000*), 0, "ee41000");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41000.e");
+ test_class_info(&lv, &cd_ee41000);
+ dp->~ee41000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41000(Test_ee41000, "ee41000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee41000C1Ev();
+extern void _ZN7ee41000D1Ev();
+Name_Map name_map_ee41000[] = {
+ NSPAIR(_ZN7ee41000C1Ev),
+ NSPAIR(_ZN7ee41000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd1000;
+extern VTBL_ENTRY _ZTI6dd1000[];
+extern VTBL_ENTRY _ZTV6dd1000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1000[];
+static Base_Class bases_ee41000[] = {
+ // 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, 0},
+ {&cd_bb00, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1000, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee41000[];
+extern void _ZN7ee410003barEv();
+static VTBL_ENTRY vtc_ee41000[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41000[0]),
+ (VTBL_ENTRY)&_ZN7ee410003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee41000[];
+static VTBL_ENTRY _tg__ZTV6dd1000__7ee41000[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1000[0]),
+};
+static VTT_ENTRY vtt_ee41000[] = {
+ {&(_ZTV7ee41000[3]), 3,4},
+ {&(_tg__ZTV6dd1000__7ee41000[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee41000[];
+extern VTBL_ENTRY _ZTV7ee41000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41000[];
+Class_Descriptor cd_ee41000 = { "ee41000", // class name
+ bases_ee41000, 4,
+ &(vtc_ee41000[0]), // expected_vtbl_contents
+ &(vtt_ee41000[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee41000),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41000),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41000),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 ee51000 : virtual dd1000 {
+ int e;
+ virtual void bar(); // _ZN7ee510003barEv
+ ~ee51000(); // tgen
+ ee51000(); // tgen
+};
+//SIG(1 ee51000) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} Fi} Fi} v1 Fi}
+
+
+void ee51000 ::bar(){vfunc_called(this, "_ZN7ee510003barEv");}
+ee51000 ::~ee51000(){ note_dtor("ee51000", this);} // tgen
+ee51000 ::ee51000(){ note_ctor("ee51000", this);} // tgen
+
+static void Test_ee51000()
+{
+ extern Class_Descriptor cd_ee51000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee51000, buf);
+ ee51000 *dp, &lv = *(dp=new (buf) ee51000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee51000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(28,16), "ee51000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(28,16), "ee51000");
+ check_base_class_offset(lv, (cc000*)(dd1000*), ABISELECT(28,16), "ee51000");
+ check_base_class_offset(lv, (dd1000*), ABISELECT(16,8), "ee51000");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51000.e");
+ test_class_info(&lv, &cd_ee51000);
+ dp->~ee51000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51000(Test_ee51000, "ee51000", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee51000C1Ev();
+extern void _ZN7ee51000D1Ev();
+Name_Map name_map_ee51000[] = {
+ NSPAIR(_ZN7ee51000C1Ev),
+ NSPAIR(_ZN7ee51000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd1000;
+extern VTBL_ENTRY _ZTI6dd1000[];
+extern VTBL_ENTRY _ZTV6dd1000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1000[];
+static Base_Class bases_ee51000[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1000, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee51000[];
+extern void _ZN7ee510003barEv();
+static VTBL_ENTRY vtc_ee51000[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51000[0]),
+ (VTBL_ENTRY)&_ZN7ee510003barEv,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51000[0]),
+};
+extern VTBL_ENTRY _ZTV7ee51000[];
+static VTBL_ENTRY _tg__ZTV6dd1000__7ee51000[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1000[0]),
+};
+static VTT_ENTRY vtt_ee51000[] = {
+ {&(_ZTV7ee51000[4]), 4,8},
+ {&(_ZTV7ee51000[8]), 8,8},
+ {&(_tg__ZTV6dd1000__7ee51000[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee51000[];
+extern VTBL_ENTRY _ZTV7ee51000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51000[];
+Class_Descriptor cd_ee51000 = { "ee51000", // class name
+ bases_ee51000, 4,
+ &(vtc_ee51000[0]), // expected_vtbl_contents
+ &(vtt_ee51000[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee51000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51000),8, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51000),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 ee61000 : dd1000 {
+ int e;
+ virtual void foo(); // _ZN7ee610003fooEv
+ virtual void bar(); // _ZN7ee610003barEv
+ ~ee61000(); // tgen
+ ee61000(); // tgen
+};
+//SIG(1 ee61000) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee61000 ::foo(){vfunc_called(this, "_ZN7ee610003fooEv");}
+void ee61000 ::bar(){vfunc_called(this, "_ZN7ee610003barEv");}
+ee61000 ::~ee61000(){ note_dtor("ee61000", this);} // tgen
+ee61000 ::ee61000(){ note_ctor("ee61000", this);} // tgen
+
+static void Test_ee61000()
+{
+ extern Class_Descriptor cd_ee61000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee61000, buf);
+ ee61000 *dp, &lv = *(dp=new (buf) ee61000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee61000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(16,12), "ee61000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(16,12), "ee61000");
+ check_base_class_offset(lv, (cc000*)(dd1000*), ABISELECT(16,12), "ee61000");
+ check_base_class_offset(lv, (dd1000*), 0, "ee61000");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61000.e");
+ test_class_info(&lv, &cd_ee61000);
+ dp->~ee61000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61000(Test_ee61000, "ee61000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee61000C1Ev();
+extern void _ZN7ee61000D1Ev();
+Name_Map name_map_ee61000[] = {
+ NSPAIR(_ZN7ee61000C1Ev),
+ NSPAIR(_ZN7ee61000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd1000;
+extern VTBL_ENTRY _ZTI6dd1000[];
+extern VTBL_ENTRY _ZTV6dd1000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1000[];
+static Base_Class bases_ee61000[] = {
+ // 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, 0},
+ {&cd_bb00, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1000, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee61000[];
+extern void _ZN7ee610003fooEv();
+extern void _ZN7ee610003barEv();
+static VTBL_ENTRY vtc_ee61000[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61000[0]),
+ (VTBL_ENTRY)&_ZN7ee610003fooEv,
+ (VTBL_ENTRY)&_ZN7ee610003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee61000[];
+static VTBL_ENTRY _tg__ZTV6dd1000__7ee61000[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1000[0]),
+};
+static VTT_ENTRY vtt_ee61000[] = {
+ {&(_ZTV7ee61000[3]), 3,5},
+ {&(_tg__ZTV6dd1000__7ee61000[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee61000[];
+extern VTBL_ENTRY _ZTV7ee61000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61000[];
+Class_Descriptor cd_ee61000 = { "ee61000", // class name
+ bases_ee61000, 4,
+ &(vtc_ee61000[0]), // expected_vtbl_contents
+ &(vtt_ee61000[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee61000),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61000),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61000),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 ee71000 : virtual dd1000 {
+ int e;
+ virtual void foo(); // _ZN7ee710003fooEv
+ virtual void bar(); // _ZN7ee710003barEv
+ ~ee71000(); // tgen
+ ee71000(); // tgen
+};
+//SIG(1 ee71000) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee71000 ::foo(){vfunc_called(this, "_ZN7ee710003fooEv");}
+void ee71000 ::bar(){vfunc_called(this, "_ZN7ee710003barEv");}
+ee71000 ::~ee71000(){ note_dtor("ee71000", this);} // tgen
+ee71000 ::ee71000(){ note_ctor("ee71000", this);} // tgen
+
+static void Test_ee71000()
+{
+ extern Class_Descriptor cd_ee71000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee71000, buf);
+ ee71000 *dp, &lv = *(dp=new (buf) ee71000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee71000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(28,16), "ee71000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(28,16), "ee71000");
+ check_base_class_offset(lv, (cc000*)(dd1000*), ABISELECT(28,16), "ee71000");
+ check_base_class_offset(lv, (dd1000*), ABISELECT(16,8), "ee71000");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71000.e");
+ test_class_info(&lv, &cd_ee71000);
+ dp->~ee71000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71000(Test_ee71000, "ee71000", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee71000C1Ev();
+extern void _ZN7ee71000D1Ev();
+Name_Map name_map_ee71000[] = {
+ NSPAIR(_ZN7ee71000C1Ev),
+ NSPAIR(_ZN7ee71000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd1000;
+extern VTBL_ENTRY _ZTI6dd1000[];
+extern VTBL_ENTRY _ZTV6dd1000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1000[];
+static Base_Class bases_ee71000[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1000, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee71000[];
+extern void _ZN7ee710003fooEv();
+extern void _ZN7ee710003barEv();
+static VTBL_ENTRY vtc_ee71000[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71000[0]),
+ (VTBL_ENTRY)&_ZN7ee710003fooEv,
+ (VTBL_ENTRY)&_ZN7ee710003barEv,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71000[0]),
+};
+extern VTBL_ENTRY _ZTV7ee71000[];
+static VTBL_ENTRY _tg__ZTV6dd1000__7ee71000[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1000[0]),
+};
+static VTT_ENTRY vtt_ee71000[] = {
+ {&(_ZTV7ee71000[4]), 4,9},
+ {&(_ZTV7ee71000[9]), 9,9},
+ {&(_tg__ZTV6dd1000__7ee71000[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee71000[];
+extern VTBL_ENTRY _ZTV7ee71000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71000[];
+Class_Descriptor cd_ee71000 = { "ee71000", // class name
+ bases_ee71000, 4,
+ &(vtc_ee71000[0]), // expected_vtbl_contents
+ &(vtt_ee71000[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee71000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71000),9, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71000),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 dd2000 : cc000 {
+ int d;
+ virtual void foo(); // _ZN6dd20003fooEv
+ ~dd2000(); // tgen
+ dd2000(); // tgen
+};
+//SIG(-1 dd2000) C1{ BC2{ BC3{ BC4{ Fi} Fi} Fi} v1 Fi}
+
+
+void dd2000 ::foo(){vfunc_called(this, "_ZN6dd20003fooEv");}
+dd2000 ::~dd2000(){ note_dtor("dd2000", this);} // tgen
+dd2000 ::dd2000(){ note_ctor("dd2000", this);} // tgen
+
+static void Test_dd2000()
+{
+ extern Class_Descriptor cd_dd2000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd2000, buf);
+ dd2000 *dp, &lv = *(dp=new (buf) dd2000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd2000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(8,4), "dd2000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(8,4), "dd2000");
+ check_base_class_offset(lv, (cc000*), ABISELECT(8,4), "dd2000");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd2000.d");
+ test_class_info(&lv, &cd_dd2000);
+ dp->~dd2000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2000(Test_dd2000, "dd2000", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd2000C1Ev();
+extern void _ZN6dd2000D1Ev();
+Name_Map name_map_dd2000[] = {
+ NSPAIR(_ZN6dd2000C1Ev),
+ NSPAIR(_ZN6dd2000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+static Base_Class bases_dd2000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd2000[];
+extern void _ZN6dd20003fooEv();
+static VTBL_ENTRY vtc_dd2000[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2000[0]),
+ (VTBL_ENTRY)&_ZN6dd20003fooEv,
+};
+extern VTBL_ENTRY _ZTI6dd2000[];
+extern VTBL_ENTRY _ZTV6dd2000[];
+Class_Descriptor cd_dd2000 = { "dd2000", // class name
+ bases_dd2000, 3,
+ &(vtc_dd2000[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd2000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd2000),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02000 : dd2000 {
+ int e;
+ ~ee02000(); // tgen
+ ee02000(); // tgen
+};
+//SIG(1 ee02000) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} Fi} v1 Fi} Fi}
+
+
+ee02000 ::~ee02000(){ note_dtor("ee02000", this);} // tgen
+ee02000 ::ee02000(){ note_ctor("ee02000", this);} // tgen
+
+static void Test_ee02000()
+{
+ extern Class_Descriptor cd_ee02000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee02000, buf);
+ ee02000 *dp, &lv = *(dp=new (buf) ee02000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee02000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*)(dd2000*), ABISELECT(8,4), "ee02000");
+ check_base_class_offset(lv, (bb00*)(cc000*)(dd2000*), ABISELECT(8,4), "ee02000");
+ check_base_class_offset(lv, (cc000*)(dd2000*), ABISELECT(8,4), "ee02000");
+ check_base_class_offset(lv, (dd2000*), 0, "ee02000");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee02000.e");
+ test_class_info(&lv, &cd_ee02000);
+ dp->~ee02000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02000(Test_ee02000, "ee02000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee02000C1Ev();
+extern void _ZN7ee02000D1Ev();
+Name_Map name_map_ee02000[] = {
+ NSPAIR(_ZN7ee02000C1Ev),
+ NSPAIR(_ZN7ee02000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd2000;
+extern VTBL_ENTRY _ZTI6dd2000[];
+extern VTBL_ENTRY _ZTV6dd2000[];
+static Base_Class bases_ee02000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2000, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02000[];
+extern void _ZN6dd20003fooEv();
+static VTBL_ENTRY vtc_ee02000[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02000[0]),
+ (VTBL_ENTRY)&_ZN6dd20003fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee02000[];
+extern VTBL_ENTRY _ZTV7ee02000[];
+Class_Descriptor cd_ee02000 = { "ee02000", // class name
+ bases_ee02000, 4,
+ &(vtc_ee02000[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee02000),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02000),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 1, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee12000 : virtual dd2000 {
+ int e;
+ ~ee12000(); // tgen
+ ee12000(); // tgen
+};
+//SIG(1 ee12000) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} Fi} v1 Fi} Fi}
+
+
+ee12000 ::~ee12000(){ note_dtor("ee12000", this);} // tgen
+ee12000 ::ee12000(){ note_ctor("ee12000", this);} // tgen
+
+static void Test_ee12000()
+{
+ extern Class_Descriptor cd_ee12000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee12000, buf);
+ ee12000 *dp, &lv = *(dp=new (buf) ee12000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee12000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*)(dd2000*), ABISELECT(24,12), "ee12000");
+ check_base_class_offset(lv, (bb00*)(cc000*)(dd2000*), ABISELECT(24,12), "ee12000");
+ check_base_class_offset(lv, (cc000*)(dd2000*), ABISELECT(24,12), "ee12000");
+ check_base_class_offset(lv, (dd2000*), ABISELECT(16,8), "ee12000");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12000.e");
+ test_class_info(&lv, &cd_ee12000);
+ dp->~ee12000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12000(Test_ee12000, "ee12000", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee12000C1Ev();
+extern void _ZN7ee12000D1Ev();
+Name_Map name_map_ee12000[] = {
+ NSPAIR(_ZN7ee12000C1Ev),
+ NSPAIR(_ZN7ee12000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd2000;
+extern VTBL_ENTRY _ZTI6dd2000[];
+extern VTBL_ENTRY _ZTV6dd2000[];
+static Base_Class bases_ee12000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(24,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
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2000, ABISELECT(16,8), //bcp->offset
+ 3, //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 _ZTI7ee12000[];
+extern void _ZN6dd20003fooEv();
+static VTBL_ENTRY vtc_ee12000[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12000[0]),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12000[0]),
+ (VTBL_ENTRY)&_ZN6dd20003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee12000[];
+static VTT_ENTRY vtt_ee12000[] = {
+ {&(_ZTV7ee12000[3]), 3,7},
+ {&(_ZTV7ee12000[6]), 6,7},
+};
+extern VTBL_ENTRY _ZTI7ee12000[];
+extern VTBL_ENTRY _ZTV7ee12000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12000[];
+Class_Descriptor cd_ee12000 = { "ee12000", // class name
+ bases_ee12000, 4,
+ &(vtc_ee12000[0]), // expected_vtbl_contents
+ &(vtt_ee12000[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee12000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12000),7, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12000),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 ee22000 : dd2000 {
+ int e;
+ virtual void foo(); // _ZN7ee220003fooEv
+ ~ee22000(); // tgen
+ ee22000(); // tgen
+};
+//SIG(1 ee22000) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee22000 ::foo(){vfunc_called(this, "_ZN7ee220003fooEv");}
+ee22000 ::~ee22000(){ note_dtor("ee22000", this);} // tgen
+ee22000 ::ee22000(){ note_ctor("ee22000", this);} // tgen
+
+static void Test_ee22000()
+{
+ extern Class_Descriptor cd_ee22000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee22000, buf);
+ ee22000 *dp, &lv = *(dp=new (buf) ee22000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee22000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*)(dd2000*), ABISELECT(8,4), "ee22000");
+ check_base_class_offset(lv, (bb00*)(cc000*)(dd2000*), ABISELECT(8,4), "ee22000");
+ check_base_class_offset(lv, (cc000*)(dd2000*), ABISELECT(8,4), "ee22000");
+ check_base_class_offset(lv, (dd2000*), 0, "ee22000");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee22000.e");
+ test_class_info(&lv, &cd_ee22000);
+ dp->~ee22000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22000(Test_ee22000, "ee22000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee22000C1Ev();
+extern void _ZN7ee22000D1Ev();
+Name_Map name_map_ee22000[] = {
+ NSPAIR(_ZN7ee22000C1Ev),
+ NSPAIR(_ZN7ee22000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd2000;
+extern VTBL_ENTRY _ZTI6dd2000[];
+extern VTBL_ENTRY _ZTV6dd2000[];
+static Base_Class bases_ee22000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2000, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22000[];
+extern void _ZN7ee220003fooEv();
+static VTBL_ENTRY vtc_ee22000[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22000[0]),
+ (VTBL_ENTRY)&_ZN7ee220003fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee22000[];
+extern VTBL_ENTRY _ZTV7ee22000[];
+Class_Descriptor cd_ee22000 = { "ee22000", // class name
+ bases_ee22000, 4,
+ &(vtc_ee22000[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee22000),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22000),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 1, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee32000 : virtual dd2000 {
+ int e;
+ virtual void foo(); // _ZN7ee320003fooEv
+ ~ee32000(); // tgen
+ ee32000(); // tgen
+};
+//SIG(1 ee32000) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee32000 ::foo(){vfunc_called(this, "_ZN7ee320003fooEv");}
+ee32000 ::~ee32000(){ note_dtor("ee32000", this);} // tgen
+ee32000 ::ee32000(){ note_ctor("ee32000", this);} // tgen
+
+static void Test_ee32000()
+{
+ extern Class_Descriptor cd_ee32000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee32000, buf);
+ ee32000 *dp, &lv = *(dp=new (buf) ee32000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee32000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*)(dd2000*), ABISELECT(24,12), "ee32000");
+ check_base_class_offset(lv, (bb00*)(cc000*)(dd2000*), ABISELECT(24,12), "ee32000");
+ check_base_class_offset(lv, (cc000*)(dd2000*), ABISELECT(24,12), "ee32000");
+ check_base_class_offset(lv, (dd2000*), ABISELECT(16,8), "ee32000");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32000.e");
+ test_class_info(&lv, &cd_ee32000);
+ dp->~ee32000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32000(Test_ee32000, "ee32000", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee32000C1Ev();
+extern void _ZN7ee32000D1Ev();
+Name_Map name_map_ee32000[] = {
+ NSPAIR(_ZN7ee32000C1Ev),
+ NSPAIR(_ZN7ee32000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd2000;
+extern VTBL_ENTRY _ZTI6dd2000[];
+extern VTBL_ENTRY _ZTV6dd2000[];
+static Base_Class bases_ee32000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(24,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
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2000, 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 _ZTI7ee32000[];
+extern void _ZN7ee320003fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee320003fooEv,_ZTv0_n12_N7ee320003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee320003fooEv,_ZThn8_N7ee320003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32000[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32000[0]),
+ (VTBL_ENTRY)&_ZN7ee320003fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32000[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee320003fooEv,_ZTv0_n12_N7ee320003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee32000[];
+static VTT_ENTRY vtt_ee32000[] = {
+ {&(_ZTV7ee32000[3]), 3,8},
+ {&(_ZTV7ee32000[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee32000[];
+extern VTBL_ENTRY _ZTV7ee32000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32000[];
+static VTBL_ENTRY alt_thunk_names1[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee320003fooEv,_ZTv0_n12_N7ee320003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee320003fooEv,_ZThn8_N7ee320003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32000 = { "ee32000", // class name
+ bases_ee32000, 4,
+ &(vtc_ee32000[0]), // expected_vtbl_contents
+ &(vtt_ee32000[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee32000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32000),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32000),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42000 : dd2000 {
+ int e;
+ virtual void bar(); // _ZN7ee420003barEv
+ ~ee42000(); // tgen
+ ee42000(); // tgen
+};
+//SIG(1 ee42000) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee42000 ::bar(){vfunc_called(this, "_ZN7ee420003barEv");}
+ee42000 ::~ee42000(){ note_dtor("ee42000", this);} // tgen
+ee42000 ::ee42000(){ note_ctor("ee42000", this);} // tgen
+
+static void Test_ee42000()
+{
+ extern Class_Descriptor cd_ee42000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee42000, buf);
+ ee42000 *dp, &lv = *(dp=new (buf) ee42000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee42000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*)(dd2000*), ABISELECT(8,4), "ee42000");
+ check_base_class_offset(lv, (bb00*)(cc000*)(dd2000*), ABISELECT(8,4), "ee42000");
+ check_base_class_offset(lv, (cc000*)(dd2000*), ABISELECT(8,4), "ee42000");
+ check_base_class_offset(lv, (dd2000*), 0, "ee42000");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee42000.e");
+ test_class_info(&lv, &cd_ee42000);
+ dp->~ee42000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42000(Test_ee42000, "ee42000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee42000C1Ev();
+extern void _ZN7ee42000D1Ev();
+Name_Map name_map_ee42000[] = {
+ NSPAIR(_ZN7ee42000C1Ev),
+ NSPAIR(_ZN7ee42000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd2000;
+extern VTBL_ENTRY _ZTI6dd2000[];
+extern VTBL_ENTRY _ZTV6dd2000[];
+static Base_Class bases_ee42000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2000, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42000[];
+extern void _ZN6dd20003fooEv();
+extern void _ZN7ee420003barEv();
+static VTBL_ENTRY vtc_ee42000[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42000[0]),
+ (VTBL_ENTRY)&_ZN6dd20003fooEv,
+ (VTBL_ENTRY)&_ZN7ee420003barEv,
+};
+extern VTBL_ENTRY _ZTI7ee42000[];
+extern VTBL_ENTRY _ZTV7ee42000[];
+Class_Descriptor cd_ee42000 = { "ee42000", // class name
+ bases_ee42000, 4,
+ &(vtc_ee42000[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee42000),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42000),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 1, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee52000 : virtual dd2000 {
+ int e;
+ virtual void bar(); // _ZN7ee520003barEv
+ ~ee52000(); // tgen
+ ee52000(); // tgen
+};
+//SIG(1 ee52000) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee52000 ::bar(){vfunc_called(this, "_ZN7ee520003barEv");}
+ee52000 ::~ee52000(){ note_dtor("ee52000", this);} // tgen
+ee52000 ::ee52000(){ note_ctor("ee52000", this);} // tgen
+
+static void Test_ee52000()
+{
+ extern Class_Descriptor cd_ee52000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee52000, buf);
+ ee52000 *dp, &lv = *(dp=new (buf) ee52000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee52000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*)(dd2000*), ABISELECT(24,12), "ee52000");
+ check_base_class_offset(lv, (bb00*)(cc000*)(dd2000*), ABISELECT(24,12), "ee52000");
+ check_base_class_offset(lv, (cc000*)(dd2000*), ABISELECT(24,12), "ee52000");
+ check_base_class_offset(lv, (dd2000*), ABISELECT(16,8), "ee52000");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52000.e");
+ test_class_info(&lv, &cd_ee52000);
+ dp->~ee52000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52000(Test_ee52000, "ee52000", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee52000C1Ev();
+extern void _ZN7ee52000D1Ev();
+Name_Map name_map_ee52000[] = {
+ NSPAIR(_ZN7ee52000C1Ev),
+ NSPAIR(_ZN7ee52000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd2000;
+extern VTBL_ENTRY _ZTI6dd2000[];
+extern VTBL_ENTRY _ZTV6dd2000[];
+static Base_Class bases_ee52000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(24,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
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2000, 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 _ZTI7ee52000[];
+extern void _ZN7ee520003barEv();
+extern void _ZN6dd20003fooEv();
+static VTBL_ENTRY vtc_ee52000[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52000[0]),
+ (VTBL_ENTRY)&_ZN7ee520003barEv,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52000[0]),
+ (VTBL_ENTRY)&_ZN6dd20003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee52000[];
+static VTT_ENTRY vtt_ee52000[] = {
+ {&(_ZTV7ee52000[3]), 3,8},
+ {&(_ZTV7ee52000[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee52000[];
+extern VTBL_ENTRY _ZTV7ee52000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52000[];
+Class_Descriptor cd_ee52000 = { "ee52000", // class name
+ bases_ee52000, 4,
+ &(vtc_ee52000[0]), // expected_vtbl_contents
+ &(vtt_ee52000[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee52000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52000),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52000),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 ee62000 : dd2000 {
+ int e;
+ virtual void foo(); // _ZN7ee620003fooEv
+ virtual void bar(); // _ZN7ee620003barEv
+ ~ee62000(); // tgen
+ ee62000(); // tgen
+};
+//SIG(1 ee62000) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62000 ::foo(){vfunc_called(this, "_ZN7ee620003fooEv");}
+void ee62000 ::bar(){vfunc_called(this, "_ZN7ee620003barEv");}
+ee62000 ::~ee62000(){ note_dtor("ee62000", this);} // tgen
+ee62000 ::ee62000(){ note_ctor("ee62000", this);} // tgen
+
+static void Test_ee62000()
+{
+ extern Class_Descriptor cd_ee62000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee62000, buf);
+ ee62000 *dp, &lv = *(dp=new (buf) ee62000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee62000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*)(dd2000*), ABISELECT(8,4), "ee62000");
+ check_base_class_offset(lv, (bb00*)(cc000*)(dd2000*), ABISELECT(8,4), "ee62000");
+ check_base_class_offset(lv, (cc000*)(dd2000*), ABISELECT(8,4), "ee62000");
+ check_base_class_offset(lv, (dd2000*), 0, "ee62000");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee62000.e");
+ test_class_info(&lv, &cd_ee62000);
+ dp->~ee62000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62000(Test_ee62000, "ee62000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee62000C1Ev();
+extern void _ZN7ee62000D1Ev();
+Name_Map name_map_ee62000[] = {
+ NSPAIR(_ZN7ee62000C1Ev),
+ NSPAIR(_ZN7ee62000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd2000;
+extern VTBL_ENTRY _ZTI6dd2000[];
+extern VTBL_ENTRY _ZTV6dd2000[];
+static Base_Class bases_ee62000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2000, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62000[];
+extern void _ZN7ee620003fooEv();
+extern void _ZN7ee620003barEv();
+static VTBL_ENTRY vtc_ee62000[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62000[0]),
+ (VTBL_ENTRY)&_ZN7ee620003fooEv,
+ (VTBL_ENTRY)&_ZN7ee620003barEv,
+};
+extern VTBL_ENTRY _ZTI7ee62000[];
+extern VTBL_ENTRY _ZTV7ee62000[];
+Class_Descriptor cd_ee62000 = { "ee62000", // class name
+ bases_ee62000, 4,
+ &(vtc_ee62000[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee62000),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62000),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 1, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee72000 : virtual dd2000 {
+ int e;
+ virtual void foo(); // _ZN7ee720003fooEv
+ virtual void bar(); // _ZN7ee720003barEv
+ ~ee72000(); // tgen
+ ee72000(); // tgen
+};
+//SIG(1 ee72000) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72000 ::foo(){vfunc_called(this, "_ZN7ee720003fooEv");}
+void ee72000 ::bar(){vfunc_called(this, "_ZN7ee720003barEv");}
+ee72000 ::~ee72000(){ note_dtor("ee72000", this);} // tgen
+ee72000 ::ee72000(){ note_ctor("ee72000", this);} // tgen
+
+static void Test_ee72000()
+{
+ extern Class_Descriptor cd_ee72000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee72000, buf);
+ ee72000 *dp, &lv = *(dp=new (buf) ee72000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee72000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*)(dd2000*), ABISELECT(24,12), "ee72000");
+ check_base_class_offset(lv, (bb00*)(cc000*)(dd2000*), ABISELECT(24,12), "ee72000");
+ check_base_class_offset(lv, (cc000*)(dd2000*), ABISELECT(24,12), "ee72000");
+ check_base_class_offset(lv, (dd2000*), ABISELECT(16,8), "ee72000");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72000.e");
+ test_class_info(&lv, &cd_ee72000);
+ dp->~ee72000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72000(Test_ee72000, "ee72000", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee72000C1Ev();
+extern void _ZN7ee72000D1Ev();
+Name_Map name_map_ee72000[] = {
+ NSPAIR(_ZN7ee72000C1Ev),
+ NSPAIR(_ZN7ee72000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd2000;
+extern VTBL_ENTRY _ZTI6dd2000[];
+extern VTBL_ENTRY _ZTV6dd2000[];
+static Base_Class bases_ee72000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(24,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
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2000, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee72000[];
+extern void _ZN7ee720003fooEv();
+extern void _ZN7ee720003barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee720003fooEv,_ZTv0_n12_N7ee720003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee720003fooEv,_ZThn8_N7ee720003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72000[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72000[0]),
+ (VTBL_ENTRY)&_ZN7ee720003fooEv,
+ (VTBL_ENTRY)&_ZN7ee720003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72000[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee720003fooEv,_ZTv0_n12_N7ee720003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee72000[];
+static VTT_ENTRY vtt_ee72000[] = {
+ {&(_ZTV7ee72000[3]), 3,9},
+ {&(_ZTV7ee72000[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee72000[];
+extern VTBL_ENTRY _ZTV7ee72000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72000[];
+static VTBL_ENTRY alt_thunk_names2[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee720003fooEv,_ZTv0_n12_N7ee720003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee720003fooEv,_ZThn8_N7ee720003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72000 = { "ee72000", // class name
+ bases_ee72000, 4,
+ &(vtc_ee72000[0]), // expected_vtbl_contents
+ &(vtt_ee72000[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee72000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72000),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72000),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names2,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3000 : virtual cc000 {
+ int d;
+ virtual void foo(); // _ZN6dd30003fooEv
+ ~dd3000(); // tgen
+ dd3000(); // tgen
+};
+//SIG(-1 dd3000) C1{ VBC2{ BC3{ BC4{ Fi} Fi} Fi} v1 Fi}
+
+
+void dd3000 ::foo(){vfunc_called(this, "_ZN6dd30003fooEv");}
+dd3000 ::~dd3000(){ note_dtor("dd3000", this);} // tgen
+dd3000 ::dd3000(){ note_ctor("dd3000", this);} // tgen
+
+static void Test_dd3000()
+{
+ extern Class_Descriptor cd_dd3000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd3000, buf);
+ dd3000 *dp, &lv = *(dp=new (buf) dd3000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd3000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(12,8), "dd3000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(12,8), "dd3000");
+ check_base_class_offset(lv, (cc000*), ABISELECT(12,8), "dd3000");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3000.d");
+ test_class_info(&lv, &cd_dd3000);
+ dp->~dd3000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3000(Test_dd3000, "dd3000", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd3000C1Ev();
+extern void _ZN6dd3000D1Ev();
+Name_Map name_map_dd3000[] = {
+ NSPAIR(_ZN6dd3000C1Ev),
+ NSPAIR(_ZN6dd3000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+static Base_Class bases_dd3000[] = {
+ // 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
+ 0, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, 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 _ZTI6dd3000[];
+extern void _ZN6dd30003fooEv();
+static VTBL_ENTRY vtc_dd3000[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3000[0]),
+ (VTBL_ENTRY)&_ZN6dd30003fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd3000[];
+static VTT_ENTRY vtt_dd3000[] = {
+ {&(_ZTV6dd3000[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd3000[];
+extern VTBL_ENTRY _ZTV6dd3000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3000[];
+Class_Descriptor cd_dd3000 = { "dd3000", // class name
+ bases_dd3000, 3,
+ &(vtc_dd3000[0]), // expected_vtbl_contents
+ &(vtt_dd3000[0]), // expected_vtt_contents
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd3000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3000),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3000),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 ee03000 : dd3000 {
+ int e;
+ ~ee03000(); // tgen
+ ee03000(); // tgen
+};
+//SIG(1 ee03000) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} Fi} v1 Fi} Fi}
+
+
+ee03000 ::~ee03000(){ note_dtor("ee03000", this);} // tgen
+ee03000 ::ee03000(){ note_ctor("ee03000", this);} // tgen
+
+static void Test_ee03000()
+{
+ extern Class_Descriptor cd_ee03000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee03000, buf);
+ ee03000 *dp, &lv = *(dp=new (buf) ee03000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee03000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(16,12), "ee03000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(16,12), "ee03000");
+ check_base_class_offset(lv, (cc000*)(dd3000*), ABISELECT(16,12), "ee03000");
+ check_base_class_offset(lv, (dd3000*), 0, "ee03000");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03000.e");
+ test_class_info(&lv, &cd_ee03000);
+ dp->~ee03000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03000(Test_ee03000, "ee03000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee03000C1Ev();
+extern void _ZN7ee03000D1Ev();
+Name_Map name_map_ee03000[] = {
+ NSPAIR(_ZN7ee03000C1Ev),
+ NSPAIR(_ZN7ee03000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd3000;
+extern VTBL_ENTRY _ZTI6dd3000[];
+extern VTBL_ENTRY _ZTV6dd3000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3000[];
+static Base_Class bases_ee03000[] = {
+ // 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, 0},
+ {&cd_bb00, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3000, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee03000[];
+extern void _ZN6dd30003fooEv();
+static VTBL_ENTRY vtc_ee03000[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03000[0]),
+ (VTBL_ENTRY)&_ZN6dd30003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee03000[];
+extern void _ZN6dd30003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3000__7ee03000[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3000[0]),
+ (VTBL_ENTRY)&_ZN6dd30003fooEv,
+};
+static VTT_ENTRY vtt_ee03000[] = {
+ {&(_ZTV7ee03000[3]), 3,4},
+ {&(_tg__ZTV6dd3000__7ee03000[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee03000[];
+extern VTBL_ENTRY _ZTV7ee03000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03000[];
+Class_Descriptor cd_ee03000 = { "ee03000", // class name
+ bases_ee03000, 4,
+ &(vtc_ee03000[0]), // expected_vtbl_contents
+ &(vtt_ee03000[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee03000),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03000),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03000),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 ee13000 : virtual dd3000 {
+ int e;
+ ~ee13000(); // tgen
+ ee13000(); // tgen
+};
+//SIG(1 ee13000) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} Fi} v1 Fi} Fi}
+
+
+ee13000 ::~ee13000(){ note_dtor("ee13000", this);} // tgen
+ee13000 ::ee13000(){ note_ctor("ee13000", this);} // tgen
+
+static void Test_ee13000()
+{
+ extern Class_Descriptor cd_ee13000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee13000, buf);
+ ee13000 *dp, &lv = *(dp=new (buf) ee13000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee13000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(28,16), "ee13000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(28,16), "ee13000");
+ check_base_class_offset(lv, (cc000*)(dd3000*), ABISELECT(28,16), "ee13000");
+ check_base_class_offset(lv, (dd3000*), ABISELECT(16,8), "ee13000");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13000.e");
+ test_class_info(&lv, &cd_ee13000);
+ dp->~ee13000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13000(Test_ee13000, "ee13000", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee13000C1Ev();
+extern void _ZN7ee13000D1Ev();
+Name_Map name_map_ee13000[] = {
+ NSPAIR(_ZN7ee13000C1Ev),
+ NSPAIR(_ZN7ee13000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd3000;
+extern VTBL_ENTRY _ZTI6dd3000[];
+extern VTBL_ENTRY _ZTV6dd3000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3000[];
+static Base_Class bases_ee13000[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3000, 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 _ZTI7ee13000[];
+extern void _ZN6dd30003fooEv();
+static VTBL_ENTRY vtc_ee13000[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13000[0]),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13000[0]),
+ (VTBL_ENTRY)&_ZN6dd30003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee13000[];
+extern void _ZN6dd30003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3000__7ee13000[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3000[0]),
+ (VTBL_ENTRY)&_ZN6dd30003fooEv,
+};
+static VTT_ENTRY vtt_ee13000[] = {
+ {&(_ZTV7ee13000[4]), 4,9},
+ {&(_ZTV7ee13000[8]), 8,9},
+ {&(_tg__ZTV6dd3000__7ee13000[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee13000[];
+extern VTBL_ENTRY _ZTV7ee13000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13000[];
+Class_Descriptor cd_ee13000 = { "ee13000", // class name
+ bases_ee13000, 4,
+ &(vtc_ee13000[0]), // expected_vtbl_contents
+ &(vtt_ee13000[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee13000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13000),9, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13000),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 ee23000 : dd3000 {
+ int e;
+ virtual void foo(); // _ZN7ee230003fooEv
+ ~ee23000(); // tgen
+ ee23000(); // tgen
+};
+//SIG(1 ee23000) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee23000 ::foo(){vfunc_called(this, "_ZN7ee230003fooEv");}
+ee23000 ::~ee23000(){ note_dtor("ee23000", this);} // tgen
+ee23000 ::ee23000(){ note_ctor("ee23000", this);} // tgen
+
+static void Test_ee23000()
+{
+ extern Class_Descriptor cd_ee23000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee23000, buf);
+ ee23000 *dp, &lv = *(dp=new (buf) ee23000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee23000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(16,12), "ee23000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(16,12), "ee23000");
+ check_base_class_offset(lv, (cc000*)(dd3000*), ABISELECT(16,12), "ee23000");
+ check_base_class_offset(lv, (dd3000*), 0, "ee23000");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23000.e");
+ test_class_info(&lv, &cd_ee23000);
+ dp->~ee23000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23000(Test_ee23000, "ee23000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee23000C1Ev();
+extern void _ZN7ee23000D1Ev();
+Name_Map name_map_ee23000[] = {
+ NSPAIR(_ZN7ee23000C1Ev),
+ NSPAIR(_ZN7ee23000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd3000;
+extern VTBL_ENTRY _ZTI6dd3000[];
+extern VTBL_ENTRY _ZTV6dd3000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3000[];
+static Base_Class bases_ee23000[] = {
+ // 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, 0},
+ {&cd_bb00, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3000, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee23000[];
+extern void _ZN7ee230003fooEv();
+static VTBL_ENTRY vtc_ee23000[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23000[0]),
+ (VTBL_ENTRY)&_ZN7ee230003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee23000[];
+extern void _ZN6dd30003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3000__7ee23000[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3000[0]),
+ (VTBL_ENTRY)&_ZN6dd30003fooEv,
+};
+static VTT_ENTRY vtt_ee23000[] = {
+ {&(_ZTV7ee23000[3]), 3,4},
+ {&(_tg__ZTV6dd3000__7ee23000[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee23000[];
+extern VTBL_ENTRY _ZTV7ee23000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23000[];
+Class_Descriptor cd_ee23000 = { "ee23000", // class name
+ bases_ee23000, 4,
+ &(vtc_ee23000[0]), // expected_vtbl_contents
+ &(vtt_ee23000[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee23000),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23000),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23000),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 ee33000 : virtual dd3000 {
+ int e;
+ virtual void foo(); // _ZN7ee330003fooEv
+ ~ee33000(); // tgen
+ ee33000(); // tgen
+};
+//SIG(1 ee33000) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee33000 ::foo(){vfunc_called(this, "_ZN7ee330003fooEv");}
+ee33000 ::~ee33000(){ note_dtor("ee33000", this);} // tgen
+ee33000 ::ee33000(){ note_ctor("ee33000", this);} // tgen
+
+static void Test_ee33000()
+{
+ extern Class_Descriptor cd_ee33000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee33000, buf);
+ ee33000 *dp, &lv = *(dp=new (buf) ee33000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee33000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(28,16), "ee33000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(28,16), "ee33000");
+ check_base_class_offset(lv, (cc000*)(dd3000*), ABISELECT(28,16), "ee33000");
+ check_base_class_offset(lv, (dd3000*), ABISELECT(16,8), "ee33000");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33000.e");
+ test_class_info(&lv, &cd_ee33000);
+ dp->~ee33000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33000(Test_ee33000, "ee33000", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee33000C1Ev();
+extern void _ZN7ee33000D1Ev();
+Name_Map name_map_ee33000[] = {
+ NSPAIR(_ZN7ee33000C1Ev),
+ NSPAIR(_ZN7ee33000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd3000;
+extern VTBL_ENTRY _ZTI6dd3000[];
+extern VTBL_ENTRY _ZTV6dd3000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3000[];
+static Base_Class bases_ee33000[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3000, 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 _ZTI7ee33000[];
+extern void _ZN7ee330003fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee330003fooEv,_ZTv0_n16_N7ee330003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee330003fooEv,_ZThn8_N7ee330003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee33000[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33000[0]),
+ (VTBL_ENTRY)&_ZN7ee330003fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33000[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee330003fooEv,_ZTv0_n16_N7ee330003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee33000[];
+extern void _ZN6dd30003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3000__7ee33000[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3000[0]),
+ (VTBL_ENTRY)&_ZN6dd30003fooEv,
+};
+static VTT_ENTRY vtt_ee33000[] = {
+ {&(_ZTV7ee33000[4]), 4,10},
+ {&(_ZTV7ee33000[9]), 9,10},
+ {&(_tg__ZTV6dd3000__7ee33000[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee33000[];
+extern VTBL_ENTRY _ZTV7ee33000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33000[];
+static VTBL_ENTRY alt_thunk_names3[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee330003fooEv,_ZTv0_n16_N7ee330003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee330003fooEv,_ZThn8_N7ee330003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33000 = { "ee33000", // class name
+ bases_ee33000, 4,
+ &(vtc_ee33000[0]), // expected_vtbl_contents
+ &(vtt_ee33000[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee33000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33000),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33000),3, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names3,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43000 : dd3000 {
+ int e;
+ virtual void bar(); // _ZN7ee430003barEv
+ ~ee43000(); // tgen
+ ee43000(); // tgen
+};
+//SIG(1 ee43000) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee43000 ::bar(){vfunc_called(this, "_ZN7ee430003barEv");}
+ee43000 ::~ee43000(){ note_dtor("ee43000", this);} // tgen
+ee43000 ::ee43000(){ note_ctor("ee43000", this);} // tgen
+
+static void Test_ee43000()
+{
+ extern Class_Descriptor cd_ee43000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee43000, buf);
+ ee43000 *dp, &lv = *(dp=new (buf) ee43000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee43000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(16,12), "ee43000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(16,12), "ee43000");
+ check_base_class_offset(lv, (cc000*)(dd3000*), ABISELECT(16,12), "ee43000");
+ check_base_class_offset(lv, (dd3000*), 0, "ee43000");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43000.e");
+ test_class_info(&lv, &cd_ee43000);
+ dp->~ee43000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43000(Test_ee43000, "ee43000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee43000C1Ev();
+extern void _ZN7ee43000D1Ev();
+Name_Map name_map_ee43000[] = {
+ NSPAIR(_ZN7ee43000C1Ev),
+ NSPAIR(_ZN7ee43000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd3000;
+extern VTBL_ENTRY _ZTI6dd3000[];
+extern VTBL_ENTRY _ZTV6dd3000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3000[];
+static Base_Class bases_ee43000[] = {
+ // 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, 0},
+ {&cd_bb00, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3000, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee43000[];
+extern void _ZN6dd30003fooEv();
+extern void _ZN7ee430003barEv();
+static VTBL_ENTRY vtc_ee43000[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43000[0]),
+ (VTBL_ENTRY)&_ZN6dd30003fooEv,
+ (VTBL_ENTRY)&_ZN7ee430003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee43000[];
+extern void _ZN6dd30003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3000__7ee43000[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3000[0]),
+ (VTBL_ENTRY)&_ZN6dd30003fooEv,
+};
+static VTT_ENTRY vtt_ee43000[] = {
+ {&(_ZTV7ee43000[3]), 3,5},
+ {&(_tg__ZTV6dd3000__7ee43000[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee43000[];
+extern VTBL_ENTRY _ZTV7ee43000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43000[];
+Class_Descriptor cd_ee43000 = { "ee43000", // class name
+ bases_ee43000, 4,
+ &(vtc_ee43000[0]), // expected_vtbl_contents
+ &(vtt_ee43000[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee43000),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43000),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43000),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 ee53000 : virtual dd3000 {
+ int e;
+ virtual void bar(); // _ZN7ee530003barEv
+ ~ee53000(); // tgen
+ ee53000(); // tgen
+};
+//SIG(1 ee53000) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee53000 ::bar(){vfunc_called(this, "_ZN7ee530003barEv");}
+ee53000 ::~ee53000(){ note_dtor("ee53000", this);} // tgen
+ee53000 ::ee53000(){ note_ctor("ee53000", this);} // tgen
+
+static void Test_ee53000()
+{
+ extern Class_Descriptor cd_ee53000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee53000, buf);
+ ee53000 *dp, &lv = *(dp=new (buf) ee53000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee53000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(28,16), "ee53000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(28,16), "ee53000");
+ check_base_class_offset(lv, (cc000*)(dd3000*), ABISELECT(28,16), "ee53000");
+ check_base_class_offset(lv, (dd3000*), ABISELECT(16,8), "ee53000");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53000.e");
+ test_class_info(&lv, &cd_ee53000);
+ dp->~ee53000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53000(Test_ee53000, "ee53000", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee53000C1Ev();
+extern void _ZN7ee53000D1Ev();
+Name_Map name_map_ee53000[] = {
+ NSPAIR(_ZN7ee53000C1Ev),
+ NSPAIR(_ZN7ee53000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd3000;
+extern VTBL_ENTRY _ZTI6dd3000[];
+extern VTBL_ENTRY _ZTV6dd3000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3000[];
+static Base_Class bases_ee53000[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3000, 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 _ZTI7ee53000[];
+extern void _ZN7ee530003barEv();
+extern void _ZN6dd30003fooEv();
+static VTBL_ENTRY vtc_ee53000[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53000[0]),
+ (VTBL_ENTRY)&_ZN7ee530003barEv,
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53000[0]),
+ (VTBL_ENTRY)&_ZN6dd30003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee53000[];
+extern void _ZN6dd30003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3000__7ee53000[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3000[0]),
+ (VTBL_ENTRY)&_ZN6dd30003fooEv,
+};
+static VTT_ENTRY vtt_ee53000[] = {
+ {&(_ZTV7ee53000[4]), 4,10},
+ {&(_ZTV7ee53000[9]), 9,10},
+ {&(_tg__ZTV6dd3000__7ee53000[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee53000[];
+extern VTBL_ENTRY _ZTV7ee53000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53000[];
+Class_Descriptor cd_ee53000 = { "ee53000", // class name
+ bases_ee53000, 4,
+ &(vtc_ee53000[0]), // expected_vtbl_contents
+ &(vtt_ee53000[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee53000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53000),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53000),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 ee63000 : dd3000 {
+ int e;
+ virtual void foo(); // _ZN7ee630003fooEv
+ virtual void bar(); // _ZN7ee630003barEv
+ ~ee63000(); // tgen
+ ee63000(); // tgen
+};
+//SIG(1 ee63000) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63000 ::foo(){vfunc_called(this, "_ZN7ee630003fooEv");}
+void ee63000 ::bar(){vfunc_called(this, "_ZN7ee630003barEv");}
+ee63000 ::~ee63000(){ note_dtor("ee63000", this);} // tgen
+ee63000 ::ee63000(){ note_ctor("ee63000", this);} // tgen
+
+static void Test_ee63000()
+{
+ extern Class_Descriptor cd_ee63000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee63000, buf);
+ ee63000 *dp, &lv = *(dp=new (buf) ee63000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee63000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(16,12), "ee63000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(16,12), "ee63000");
+ check_base_class_offset(lv, (cc000*)(dd3000*), ABISELECT(16,12), "ee63000");
+ check_base_class_offset(lv, (dd3000*), 0, "ee63000");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63000.e");
+ test_class_info(&lv, &cd_ee63000);
+ dp->~ee63000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63000(Test_ee63000, "ee63000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee63000C1Ev();
+extern void _ZN7ee63000D1Ev();
+Name_Map name_map_ee63000[] = {
+ NSPAIR(_ZN7ee63000C1Ev),
+ NSPAIR(_ZN7ee63000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd3000;
+extern VTBL_ENTRY _ZTI6dd3000[];
+extern VTBL_ENTRY _ZTV6dd3000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3000[];
+static Base_Class bases_ee63000[] = {
+ // 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, 0},
+ {&cd_bb00, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3000, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee63000[];
+extern void _ZN7ee630003fooEv();
+extern void _ZN7ee630003barEv();
+static VTBL_ENTRY vtc_ee63000[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63000[0]),
+ (VTBL_ENTRY)&_ZN7ee630003fooEv,
+ (VTBL_ENTRY)&_ZN7ee630003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee63000[];
+extern void _ZN6dd30003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3000__7ee63000[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3000[0]),
+ (VTBL_ENTRY)&_ZN6dd30003fooEv,
+};
+static VTT_ENTRY vtt_ee63000[] = {
+ {&(_ZTV7ee63000[3]), 3,5},
+ {&(_tg__ZTV6dd3000__7ee63000[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee63000[];
+extern VTBL_ENTRY _ZTV7ee63000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63000[];
+Class_Descriptor cd_ee63000 = { "ee63000", // class name
+ bases_ee63000, 4,
+ &(vtc_ee63000[0]), // expected_vtbl_contents
+ &(vtt_ee63000[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee63000),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63000),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63000),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 ee73000 : virtual dd3000 {
+ int e;
+ virtual void foo(); // _ZN7ee730003fooEv
+ virtual void bar(); // _ZN7ee730003barEv
+ ~ee73000(); // tgen
+ ee73000(); // tgen
+};
+//SIG(1 ee73000) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73000 ::foo(){vfunc_called(this, "_ZN7ee730003fooEv");}
+void ee73000 ::bar(){vfunc_called(this, "_ZN7ee730003barEv");}
+ee73000 ::~ee73000(){ note_dtor("ee73000", this);} // tgen
+ee73000 ::ee73000(){ note_ctor("ee73000", this);} // tgen
+
+static void Test_ee73000()
+{
+ extern Class_Descriptor cd_ee73000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee73000, buf);
+ ee73000 *dp, &lv = *(dp=new (buf) ee73000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee73000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(28,16), "ee73000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(28,16), "ee73000");
+ check_base_class_offset(lv, (cc000*)(dd3000*), ABISELECT(28,16), "ee73000");
+ check_base_class_offset(lv, (dd3000*), ABISELECT(16,8), "ee73000");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73000.e");
+ test_class_info(&lv, &cd_ee73000);
+ dp->~ee73000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73000(Test_ee73000, "ee73000", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee73000C1Ev();
+extern void _ZN7ee73000D1Ev();
+Name_Map name_map_ee73000[] = {
+ NSPAIR(_ZN7ee73000C1Ev),
+ NSPAIR(_ZN7ee73000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd3000;
+extern VTBL_ENTRY _ZTI6dd3000[];
+extern VTBL_ENTRY _ZTV6dd3000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3000[];
+static Base_Class bases_ee73000[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3000, 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 _ZTI7ee73000[];
+extern void _ZN7ee730003fooEv();
+extern void _ZN7ee730003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee730003fooEv,_ZTv0_n16_N7ee730003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee730003fooEv,_ZThn8_N7ee730003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73000[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73000[0]),
+ (VTBL_ENTRY)&_ZN7ee730003fooEv,
+ (VTBL_ENTRY)&_ZN7ee730003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73000[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee730003fooEv,_ZTv0_n16_N7ee730003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee73000[];
+extern void _ZN6dd30003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3000__7ee73000[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3000[0]),
+ (VTBL_ENTRY)&_ZN6dd30003fooEv,
+};
+static VTT_ENTRY vtt_ee73000[] = {
+ {&(_ZTV7ee73000[4]), 4,11},
+ {&(_ZTV7ee73000[10]), 10,11},
+ {&(_tg__ZTV6dd3000__7ee73000[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee73000[];
+extern VTBL_ENTRY _ZTV7ee73000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73000[];
+static VTBL_ENTRY alt_thunk_names4[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee730003fooEv,_ZTv0_n16_N7ee730003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee730003fooEv,_ZThn8_N7ee730003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73000 = { "ee73000", // class name
+ bases_ee73000, 4,
+ &(vtc_ee73000[0]), // expected_vtbl_contents
+ &(vtt_ee73000[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee73000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73000),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73000),3, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names4,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4000 : cc000 {
+ int d;
+ virtual void bar(); // _ZN6dd40003barEv
+ ~dd4000(); // tgen
+ dd4000(); // tgen
+};
+//SIG(-1 dd4000) C1{ BC2{ BC3{ BC4{ Fi} Fi} Fi} v1 Fi}
+
+
+void dd4000 ::bar(){vfunc_called(this, "_ZN6dd40003barEv");}
+dd4000 ::~dd4000(){ note_dtor("dd4000", this);} // tgen
+dd4000 ::dd4000(){ note_ctor("dd4000", this);} // tgen
+
+static void Test_dd4000()
+{
+ extern Class_Descriptor cd_dd4000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd4000, buf);
+ dd4000 *dp, &lv = *(dp=new (buf) dd4000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd4000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(8,4), "dd4000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(8,4), "dd4000");
+ check_base_class_offset(lv, (cc000*), ABISELECT(8,4), "dd4000");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd4000.d");
+ test_class_info(&lv, &cd_dd4000);
+ dp->~dd4000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4000(Test_dd4000, "dd4000", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd4000C1Ev();
+extern void _ZN6dd4000D1Ev();
+Name_Map name_map_dd4000[] = {
+ NSPAIR(_ZN6dd4000C1Ev),
+ NSPAIR(_ZN6dd4000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+static Base_Class bases_dd4000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd4000[];
+extern void _ZN6dd40003barEv();
+static VTBL_ENTRY vtc_dd4000[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4000[0]),
+ (VTBL_ENTRY)&_ZN6dd40003barEv,
+};
+extern VTBL_ENTRY _ZTI6dd4000[];
+extern VTBL_ENTRY _ZTV6dd4000[];
+Class_Descriptor cd_dd4000 = { "dd4000", // class name
+ bases_dd4000, 3,
+ &(vtc_dd4000[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd4000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd4000),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee04000 : dd4000 {
+ int e;
+ ~ee04000(); // tgen
+ ee04000(); // tgen
+};
+//SIG(1 ee04000) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} Fi} v1 Fi} Fi}
+
+
+ee04000 ::~ee04000(){ note_dtor("ee04000", this);} // tgen
+ee04000 ::ee04000(){ note_ctor("ee04000", this);} // tgen
+
+static void Test_ee04000()
+{
+ extern Class_Descriptor cd_ee04000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee04000, buf);
+ ee04000 *dp, &lv = *(dp=new (buf) ee04000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee04000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*)(dd4000*), ABISELECT(8,4), "ee04000");
+ check_base_class_offset(lv, (bb00*)(cc000*)(dd4000*), ABISELECT(8,4), "ee04000");
+ check_base_class_offset(lv, (cc000*)(dd4000*), ABISELECT(8,4), "ee04000");
+ check_base_class_offset(lv, (dd4000*), 0, "ee04000");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee04000.e");
+ test_class_info(&lv, &cd_ee04000);
+ dp->~ee04000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04000(Test_ee04000, "ee04000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee04000C1Ev();
+extern void _ZN7ee04000D1Ev();
+Name_Map name_map_ee04000[] = {
+ NSPAIR(_ZN7ee04000C1Ev),
+ NSPAIR(_ZN7ee04000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd4000;
+extern VTBL_ENTRY _ZTI6dd4000[];
+extern VTBL_ENTRY _ZTV6dd4000[];
+static Base_Class bases_ee04000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4000, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04000[];
+extern void _ZN6dd40003barEv();
+static VTBL_ENTRY vtc_ee04000[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04000[0]),
+ (VTBL_ENTRY)&_ZN6dd40003barEv,
+};
+extern VTBL_ENTRY _ZTI7ee04000[];
+extern VTBL_ENTRY _ZTV7ee04000[];
+Class_Descriptor cd_ee04000 = { "ee04000", // class name
+ bases_ee04000, 4,
+ &(vtc_ee04000[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee04000),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04000),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 1, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee14000 : virtual dd4000 {
+ int e;
+ ~ee14000(); // tgen
+ ee14000(); // tgen
+};
+//SIG(1 ee14000) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} Fi} v1 Fi} Fi}
+
+
+ee14000 ::~ee14000(){ note_dtor("ee14000", this);} // tgen
+ee14000 ::ee14000(){ note_ctor("ee14000", this);} // tgen
+
+static void Test_ee14000()
+{
+ extern Class_Descriptor cd_ee14000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee14000, buf);
+ ee14000 *dp, &lv = *(dp=new (buf) ee14000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee14000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*)(dd4000*), ABISELECT(24,12), "ee14000");
+ check_base_class_offset(lv, (bb00*)(cc000*)(dd4000*), ABISELECT(24,12), "ee14000");
+ check_base_class_offset(lv, (cc000*)(dd4000*), ABISELECT(24,12), "ee14000");
+ check_base_class_offset(lv, (dd4000*), ABISELECT(16,8), "ee14000");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14000.e");
+ test_class_info(&lv, &cd_ee14000);
+ dp->~ee14000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14000(Test_ee14000, "ee14000", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee14000C1Ev();
+extern void _ZN7ee14000D1Ev();
+Name_Map name_map_ee14000[] = {
+ NSPAIR(_ZN7ee14000C1Ev),
+ NSPAIR(_ZN7ee14000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd4000;
+extern VTBL_ENTRY _ZTI6dd4000[];
+extern VTBL_ENTRY _ZTV6dd4000[];
+static Base_Class bases_ee14000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(24,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
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4000, ABISELECT(16,8), //bcp->offset
+ 3, //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 _ZTI7ee14000[];
+extern void _ZN6dd40003barEv();
+static VTBL_ENTRY vtc_ee14000[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14000[0]),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14000[0]),
+ (VTBL_ENTRY)&_ZN6dd40003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee14000[];
+static VTT_ENTRY vtt_ee14000[] = {
+ {&(_ZTV7ee14000[3]), 3,7},
+ {&(_ZTV7ee14000[6]), 6,7},
+};
+extern VTBL_ENTRY _ZTI7ee14000[];
+extern VTBL_ENTRY _ZTV7ee14000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14000[];
+Class_Descriptor cd_ee14000 = { "ee14000", // class name
+ bases_ee14000, 4,
+ &(vtc_ee14000[0]), // expected_vtbl_contents
+ &(vtt_ee14000[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee14000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14000),7, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14000),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 ee24000 : dd4000 {
+ int e;
+ virtual void foo(); // _ZN7ee240003fooEv
+ ~ee24000(); // tgen
+ ee24000(); // tgen
+};
+//SIG(1 ee24000) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee24000 ::foo(){vfunc_called(this, "_ZN7ee240003fooEv");}
+ee24000 ::~ee24000(){ note_dtor("ee24000", this);} // tgen
+ee24000 ::ee24000(){ note_ctor("ee24000", this);} // tgen
+
+static void Test_ee24000()
+{
+ extern Class_Descriptor cd_ee24000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee24000, buf);
+ ee24000 *dp, &lv = *(dp=new (buf) ee24000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee24000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*)(dd4000*), ABISELECT(8,4), "ee24000");
+ check_base_class_offset(lv, (bb00*)(cc000*)(dd4000*), ABISELECT(8,4), "ee24000");
+ check_base_class_offset(lv, (cc000*)(dd4000*), ABISELECT(8,4), "ee24000");
+ check_base_class_offset(lv, (dd4000*), 0, "ee24000");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee24000.e");
+ test_class_info(&lv, &cd_ee24000);
+ dp->~ee24000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24000(Test_ee24000, "ee24000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee24000C1Ev();
+extern void _ZN7ee24000D1Ev();
+Name_Map name_map_ee24000[] = {
+ NSPAIR(_ZN7ee24000C1Ev),
+ NSPAIR(_ZN7ee24000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd4000;
+extern VTBL_ENTRY _ZTI6dd4000[];
+extern VTBL_ENTRY _ZTV6dd4000[];
+static Base_Class bases_ee24000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4000, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24000[];
+extern void _ZN6dd40003barEv();
+extern void _ZN7ee240003fooEv();
+static VTBL_ENTRY vtc_ee24000[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24000[0]),
+ (VTBL_ENTRY)&_ZN6dd40003barEv,
+ (VTBL_ENTRY)&_ZN7ee240003fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee24000[];
+extern VTBL_ENTRY _ZTV7ee24000[];
+Class_Descriptor cd_ee24000 = { "ee24000", // class name
+ bases_ee24000, 4,
+ &(vtc_ee24000[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee24000),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24000),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 1, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee34000 : virtual dd4000 {
+ int e;
+ virtual void foo(); // _ZN7ee340003fooEv
+ ~ee34000(); // tgen
+ ee34000(); // tgen
+};
+//SIG(1 ee34000) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee34000 ::foo(){vfunc_called(this, "_ZN7ee340003fooEv");}
+ee34000 ::~ee34000(){ note_dtor("ee34000", this);} // tgen
+ee34000 ::ee34000(){ note_ctor("ee34000", this);} // tgen
+
+static void Test_ee34000()
+{
+ extern Class_Descriptor cd_ee34000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee34000, buf);
+ ee34000 *dp, &lv = *(dp=new (buf) ee34000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee34000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*)(dd4000*), ABISELECT(24,12), "ee34000");
+ check_base_class_offset(lv, (bb00*)(cc000*)(dd4000*), ABISELECT(24,12), "ee34000");
+ check_base_class_offset(lv, (cc000*)(dd4000*), ABISELECT(24,12), "ee34000");
+ check_base_class_offset(lv, (dd4000*), ABISELECT(16,8), "ee34000");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34000.e");
+ test_class_info(&lv, &cd_ee34000);
+ dp->~ee34000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34000(Test_ee34000, "ee34000", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee34000C1Ev();
+extern void _ZN7ee34000D1Ev();
+Name_Map name_map_ee34000[] = {
+ NSPAIR(_ZN7ee34000C1Ev),
+ NSPAIR(_ZN7ee34000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd4000;
+extern VTBL_ENTRY _ZTI6dd4000[];
+extern VTBL_ENTRY _ZTV6dd4000[];
+static Base_Class bases_ee34000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(24,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
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4000, 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 _ZTI7ee34000[];
+extern void _ZN7ee340003fooEv();
+extern void _ZN6dd40003barEv();
+static VTBL_ENTRY vtc_ee34000[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34000[0]),
+ (VTBL_ENTRY)&_ZN7ee340003fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34000[0]),
+ (VTBL_ENTRY)&_ZN6dd40003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee34000[];
+static VTT_ENTRY vtt_ee34000[] = {
+ {&(_ZTV7ee34000[3]), 3,8},
+ {&(_ZTV7ee34000[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee34000[];
+extern VTBL_ENTRY _ZTV7ee34000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34000[];
+Class_Descriptor cd_ee34000 = { "ee34000", // class name
+ bases_ee34000, 4,
+ &(vtc_ee34000[0]), // expected_vtbl_contents
+ &(vtt_ee34000[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee34000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34000),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34000),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 ee44000 : dd4000 {
+ int e;
+ virtual void bar(); // _ZN7ee440003barEv
+ ~ee44000(); // tgen
+ ee44000(); // tgen
+};
+//SIG(1 ee44000) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee44000 ::bar(){vfunc_called(this, "_ZN7ee440003barEv");}
+ee44000 ::~ee44000(){ note_dtor("ee44000", this);} // tgen
+ee44000 ::ee44000(){ note_ctor("ee44000", this);} // tgen
+
+static void Test_ee44000()
+{
+ extern Class_Descriptor cd_ee44000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee44000, buf);
+ ee44000 *dp, &lv = *(dp=new (buf) ee44000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee44000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*)(dd4000*), ABISELECT(8,4), "ee44000");
+ check_base_class_offset(lv, (bb00*)(cc000*)(dd4000*), ABISELECT(8,4), "ee44000");
+ check_base_class_offset(lv, (cc000*)(dd4000*), ABISELECT(8,4), "ee44000");
+ check_base_class_offset(lv, (dd4000*), 0, "ee44000");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee44000.e");
+ test_class_info(&lv, &cd_ee44000);
+ dp->~ee44000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44000(Test_ee44000, "ee44000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee44000C1Ev();
+extern void _ZN7ee44000D1Ev();
+Name_Map name_map_ee44000[] = {
+ NSPAIR(_ZN7ee44000C1Ev),
+ NSPAIR(_ZN7ee44000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd4000;
+extern VTBL_ENTRY _ZTI6dd4000[];
+extern VTBL_ENTRY _ZTV6dd4000[];
+static Base_Class bases_ee44000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4000, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44000[];
+extern void _ZN7ee440003barEv();
+static VTBL_ENTRY vtc_ee44000[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44000[0]),
+ (VTBL_ENTRY)&_ZN7ee440003barEv,
+};
+extern VTBL_ENTRY _ZTI7ee44000[];
+extern VTBL_ENTRY _ZTV7ee44000[];
+Class_Descriptor cd_ee44000 = { "ee44000", // class name
+ bases_ee44000, 4,
+ &(vtc_ee44000[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee44000),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44000),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 1, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee54000 : virtual dd4000 {
+ int e;
+ virtual void bar(); // _ZN7ee540003barEv
+ ~ee54000(); // tgen
+ ee54000(); // tgen
+};
+//SIG(1 ee54000) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee54000 ::bar(){vfunc_called(this, "_ZN7ee540003barEv");}
+ee54000 ::~ee54000(){ note_dtor("ee54000", this);} // tgen
+ee54000 ::ee54000(){ note_ctor("ee54000", this);} // tgen
+
+static void Test_ee54000()
+{
+ extern Class_Descriptor cd_ee54000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee54000, buf);
+ ee54000 *dp, &lv = *(dp=new (buf) ee54000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee54000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*)(dd4000*), ABISELECT(24,12), "ee54000");
+ check_base_class_offset(lv, (bb00*)(cc000*)(dd4000*), ABISELECT(24,12), "ee54000");
+ check_base_class_offset(lv, (cc000*)(dd4000*), ABISELECT(24,12), "ee54000");
+ check_base_class_offset(lv, (dd4000*), ABISELECT(16,8), "ee54000");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54000.e");
+ test_class_info(&lv, &cd_ee54000);
+ dp->~ee54000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54000(Test_ee54000, "ee54000", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee54000C1Ev();
+extern void _ZN7ee54000D1Ev();
+Name_Map name_map_ee54000[] = {
+ NSPAIR(_ZN7ee54000C1Ev),
+ NSPAIR(_ZN7ee54000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd4000;
+extern VTBL_ENTRY _ZTI6dd4000[];
+extern VTBL_ENTRY _ZTV6dd4000[];
+static Base_Class bases_ee54000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(24,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
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4000, 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 _ZTI7ee54000[];
+extern void _ZN7ee540003barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee540003barEv,_ZTv0_n12_N7ee540003barEv)();
+extern void ABISELECT(_ZThn16_N7ee540003barEv,_ZThn8_N7ee540003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54000[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54000[0]),
+ (VTBL_ENTRY)&_ZN7ee540003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54000[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee540003barEv,_ZTv0_n12_N7ee540003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54000[];
+static VTT_ENTRY vtt_ee54000[] = {
+ {&(_ZTV7ee54000[3]), 3,8},
+ {&(_ZTV7ee54000[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee54000[];
+extern VTBL_ENTRY _ZTV7ee54000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54000[];
+static VTBL_ENTRY alt_thunk_names5[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee540003barEv,_ZTv0_n12_N7ee540003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee540003barEv,_ZThn8_N7ee540003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54000 = { "ee54000", // class name
+ bases_ee54000, 4,
+ &(vtc_ee54000[0]), // expected_vtbl_contents
+ &(vtt_ee54000[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee54000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54000),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54000),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names5,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64000 : dd4000 {
+ int e;
+ virtual void foo(); // _ZN7ee640003fooEv
+ virtual void bar(); // _ZN7ee640003barEv
+ ~ee64000(); // tgen
+ ee64000(); // tgen
+};
+//SIG(1 ee64000) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64000 ::foo(){vfunc_called(this, "_ZN7ee640003fooEv");}
+void ee64000 ::bar(){vfunc_called(this, "_ZN7ee640003barEv");}
+ee64000 ::~ee64000(){ note_dtor("ee64000", this);} // tgen
+ee64000 ::ee64000(){ note_ctor("ee64000", this);} // tgen
+
+static void Test_ee64000()
+{
+ extern Class_Descriptor cd_ee64000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee64000, buf);
+ ee64000 *dp, &lv = *(dp=new (buf) ee64000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee64000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*)(dd4000*), ABISELECT(8,4), "ee64000");
+ check_base_class_offset(lv, (bb00*)(cc000*)(dd4000*), ABISELECT(8,4), "ee64000");
+ check_base_class_offset(lv, (cc000*)(dd4000*), ABISELECT(8,4), "ee64000");
+ check_base_class_offset(lv, (dd4000*), 0, "ee64000");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee64000.e");
+ test_class_info(&lv, &cd_ee64000);
+ dp->~ee64000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64000(Test_ee64000, "ee64000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee64000C1Ev();
+extern void _ZN7ee64000D1Ev();
+Name_Map name_map_ee64000[] = {
+ NSPAIR(_ZN7ee64000C1Ev),
+ NSPAIR(_ZN7ee64000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd4000;
+extern VTBL_ENTRY _ZTI6dd4000[];
+extern VTBL_ENTRY _ZTV6dd4000[];
+static Base_Class bases_ee64000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4000, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64000[];
+extern void _ZN7ee640003barEv();
+extern void _ZN7ee640003fooEv();
+static VTBL_ENTRY vtc_ee64000[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64000[0]),
+ (VTBL_ENTRY)&_ZN7ee640003barEv,
+ (VTBL_ENTRY)&_ZN7ee640003fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee64000[];
+extern VTBL_ENTRY _ZTV7ee64000[];
+Class_Descriptor cd_ee64000 = { "ee64000", // class name
+ bases_ee64000, 4,
+ &(vtc_ee64000[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee64000),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64000),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 1, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee74000 : virtual dd4000 {
+ int e;
+ virtual void foo(); // _ZN7ee740003fooEv
+ virtual void bar(); // _ZN7ee740003barEv
+ ~ee74000(); // tgen
+ ee74000(); // tgen
+};
+//SIG(1 ee74000) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74000 ::foo(){vfunc_called(this, "_ZN7ee740003fooEv");}
+void ee74000 ::bar(){vfunc_called(this, "_ZN7ee740003barEv");}
+ee74000 ::~ee74000(){ note_dtor("ee74000", this);} // tgen
+ee74000 ::ee74000(){ note_ctor("ee74000", this);} // tgen
+
+static void Test_ee74000()
+{
+ extern Class_Descriptor cd_ee74000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee74000, buf);
+ ee74000 *dp, &lv = *(dp=new (buf) ee74000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee74000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*)(dd4000*), ABISELECT(24,12), "ee74000");
+ check_base_class_offset(lv, (bb00*)(cc000*)(dd4000*), ABISELECT(24,12), "ee74000");
+ check_base_class_offset(lv, (cc000*)(dd4000*), ABISELECT(24,12), "ee74000");
+ check_base_class_offset(lv, (dd4000*), ABISELECT(16,8), "ee74000");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74000.e");
+ test_class_info(&lv, &cd_ee74000);
+ dp->~ee74000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74000(Test_ee74000, "ee74000", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee74000C1Ev();
+extern void _ZN7ee74000D1Ev();
+Name_Map name_map_ee74000[] = {
+ NSPAIR(_ZN7ee74000C1Ev),
+ NSPAIR(_ZN7ee74000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd4000;
+extern VTBL_ENTRY _ZTI6dd4000[];
+extern VTBL_ENTRY _ZTV6dd4000[];
+static Base_Class bases_ee74000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(24,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
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4000, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee74000[];
+extern void _ZN7ee740003fooEv();
+extern void _ZN7ee740003barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee740003barEv,_ZTv0_n12_N7ee740003barEv)();
+extern void ABISELECT(_ZThn16_N7ee740003barEv,_ZThn8_N7ee740003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74000[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74000[0]),
+ (VTBL_ENTRY)&_ZN7ee740003fooEv,
+ (VTBL_ENTRY)&_ZN7ee740003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74000[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee740003barEv,_ZTv0_n12_N7ee740003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74000[];
+static VTT_ENTRY vtt_ee74000[] = {
+ {&(_ZTV7ee74000[3]), 3,9},
+ {&(_ZTV7ee74000[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee74000[];
+extern VTBL_ENTRY _ZTV7ee74000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74000[];
+static VTBL_ENTRY alt_thunk_names6[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee740003barEv,_ZTv0_n12_N7ee740003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee740003barEv,_ZThn8_N7ee740003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74000 = { "ee74000", // class name
+ bases_ee74000, 4,
+ &(vtc_ee74000[0]), // expected_vtbl_contents
+ &(vtt_ee74000[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee74000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74000),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74000),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names6,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5000 : virtual cc000 {
+ int d;
+ virtual void bar(); // _ZN6dd50003barEv
+ ~dd5000(); // tgen
+ dd5000(); // tgen
+};
+//SIG(-1 dd5000) C1{ VBC2{ BC3{ BC4{ Fi} Fi} Fi} v1 Fi}
+
+
+void dd5000 ::bar(){vfunc_called(this, "_ZN6dd50003barEv");}
+dd5000 ::~dd5000(){ note_dtor("dd5000", this);} // tgen
+dd5000 ::dd5000(){ note_ctor("dd5000", this);} // tgen
+
+static void Test_dd5000()
+{
+ extern Class_Descriptor cd_dd5000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd5000, buf);
+ dd5000 *dp, &lv = *(dp=new (buf) dd5000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd5000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(12,8), "dd5000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(12,8), "dd5000");
+ check_base_class_offset(lv, (cc000*), ABISELECT(12,8), "dd5000");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5000.d");
+ test_class_info(&lv, &cd_dd5000);
+ dp->~dd5000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5000(Test_dd5000, "dd5000", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd5000C1Ev();
+extern void _ZN6dd5000D1Ev();
+Name_Map name_map_dd5000[] = {
+ NSPAIR(_ZN6dd5000C1Ev),
+ NSPAIR(_ZN6dd5000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+static Base_Class bases_dd5000[] = {
+ // 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
+ 0, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, 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 _ZTI6dd5000[];
+extern void _ZN6dd50003barEv();
+static VTBL_ENTRY vtc_dd5000[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5000[0]),
+ (VTBL_ENTRY)&_ZN6dd50003barEv,
+};
+extern VTBL_ENTRY _ZTV6dd5000[];
+static VTT_ENTRY vtt_dd5000[] = {
+ {&(_ZTV6dd5000[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd5000[];
+extern VTBL_ENTRY _ZTV6dd5000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5000[];
+Class_Descriptor cd_dd5000 = { "dd5000", // class name
+ bases_dd5000, 3,
+ &(vtc_dd5000[0]), // expected_vtbl_contents
+ &(vtt_dd5000[0]), // expected_vtt_contents
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd5000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5000),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5000),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 ee05000 : dd5000 {
+ int e;
+ ~ee05000(); // tgen
+ ee05000(); // tgen
+};
+//SIG(1 ee05000) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} Fi} v1 Fi} Fi}
+
+
+ee05000 ::~ee05000(){ note_dtor("ee05000", this);} // tgen
+ee05000 ::ee05000(){ note_ctor("ee05000", this);} // tgen
+
+static void Test_ee05000()
+{
+ extern Class_Descriptor cd_ee05000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee05000, buf);
+ ee05000 *dp, &lv = *(dp=new (buf) ee05000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee05000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(16,12), "ee05000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(16,12), "ee05000");
+ check_base_class_offset(lv, (cc000*)(dd5000*), ABISELECT(16,12), "ee05000");
+ check_base_class_offset(lv, (dd5000*), 0, "ee05000");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05000.e");
+ test_class_info(&lv, &cd_ee05000);
+ dp->~ee05000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05000(Test_ee05000, "ee05000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee05000C1Ev();
+extern void _ZN7ee05000D1Ev();
+Name_Map name_map_ee05000[] = {
+ NSPAIR(_ZN7ee05000C1Ev),
+ NSPAIR(_ZN7ee05000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd5000;
+extern VTBL_ENTRY _ZTI6dd5000[];
+extern VTBL_ENTRY _ZTV6dd5000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5000[];
+static Base_Class bases_ee05000[] = {
+ // 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, 0},
+ {&cd_bb00, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5000, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee05000[];
+extern void _ZN6dd50003barEv();
+static VTBL_ENTRY vtc_ee05000[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05000[0]),
+ (VTBL_ENTRY)&_ZN6dd50003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee05000[];
+extern void _ZN6dd50003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5000__7ee05000[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5000[0]),
+ (VTBL_ENTRY)&_ZN6dd50003barEv,
+};
+static VTT_ENTRY vtt_ee05000[] = {
+ {&(_ZTV7ee05000[3]), 3,4},
+ {&(_tg__ZTV6dd5000__7ee05000[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee05000[];
+extern VTBL_ENTRY _ZTV7ee05000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05000[];
+Class_Descriptor cd_ee05000 = { "ee05000", // class name
+ bases_ee05000, 4,
+ &(vtc_ee05000[0]), // expected_vtbl_contents
+ &(vtt_ee05000[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee05000),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05000),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05000),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 ee15000 : virtual dd5000 {
+ int e;
+ ~ee15000(); // tgen
+ ee15000(); // tgen
+};
+//SIG(1 ee15000) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} Fi} v1 Fi} Fi}
+
+
+ee15000 ::~ee15000(){ note_dtor("ee15000", this);} // tgen
+ee15000 ::ee15000(){ note_ctor("ee15000", this);} // tgen
+
+static void Test_ee15000()
+{
+ extern Class_Descriptor cd_ee15000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee15000, buf);
+ ee15000 *dp, &lv = *(dp=new (buf) ee15000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee15000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(28,16), "ee15000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(28,16), "ee15000");
+ check_base_class_offset(lv, (cc000*)(dd5000*), ABISELECT(28,16), "ee15000");
+ check_base_class_offset(lv, (dd5000*), ABISELECT(16,8), "ee15000");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15000.e");
+ test_class_info(&lv, &cd_ee15000);
+ dp->~ee15000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15000(Test_ee15000, "ee15000", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee15000C1Ev();
+extern void _ZN7ee15000D1Ev();
+Name_Map name_map_ee15000[] = {
+ NSPAIR(_ZN7ee15000C1Ev),
+ NSPAIR(_ZN7ee15000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd5000;
+extern VTBL_ENTRY _ZTI6dd5000[];
+extern VTBL_ENTRY _ZTV6dd5000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5000[];
+static Base_Class bases_ee15000[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5000, 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 _ZTI7ee15000[];
+extern void _ZN6dd50003barEv();
+static VTBL_ENTRY vtc_ee15000[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15000[0]),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15000[0]),
+ (VTBL_ENTRY)&_ZN6dd50003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee15000[];
+extern void _ZN6dd50003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5000__7ee15000[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5000[0]),
+ (VTBL_ENTRY)&_ZN6dd50003barEv,
+};
+static VTT_ENTRY vtt_ee15000[] = {
+ {&(_ZTV7ee15000[4]), 4,9},
+ {&(_ZTV7ee15000[8]), 8,9},
+ {&(_tg__ZTV6dd5000__7ee15000[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee15000[];
+extern VTBL_ENTRY _ZTV7ee15000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15000[];
+Class_Descriptor cd_ee15000 = { "ee15000", // class name
+ bases_ee15000, 4,
+ &(vtc_ee15000[0]), // expected_vtbl_contents
+ &(vtt_ee15000[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee15000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15000),9, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15000),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 ee25000 : dd5000 {
+ int e;
+ virtual void foo(); // _ZN7ee250003fooEv
+ ~ee25000(); // tgen
+ ee25000(); // tgen
+};
+//SIG(1 ee25000) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee25000 ::foo(){vfunc_called(this, "_ZN7ee250003fooEv");}
+ee25000 ::~ee25000(){ note_dtor("ee25000", this);} // tgen
+ee25000 ::ee25000(){ note_ctor("ee25000", this);} // tgen
+
+static void Test_ee25000()
+{
+ extern Class_Descriptor cd_ee25000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee25000, buf);
+ ee25000 *dp, &lv = *(dp=new (buf) ee25000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee25000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(16,12), "ee25000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(16,12), "ee25000");
+ check_base_class_offset(lv, (cc000*)(dd5000*), ABISELECT(16,12), "ee25000");
+ check_base_class_offset(lv, (dd5000*), 0, "ee25000");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25000.e");
+ test_class_info(&lv, &cd_ee25000);
+ dp->~ee25000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25000(Test_ee25000, "ee25000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee25000C1Ev();
+extern void _ZN7ee25000D1Ev();
+Name_Map name_map_ee25000[] = {
+ NSPAIR(_ZN7ee25000C1Ev),
+ NSPAIR(_ZN7ee25000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd5000;
+extern VTBL_ENTRY _ZTI6dd5000[];
+extern VTBL_ENTRY _ZTV6dd5000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5000[];
+static Base_Class bases_ee25000[] = {
+ // 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, 0},
+ {&cd_bb00, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5000, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee25000[];
+extern void _ZN6dd50003barEv();
+extern void _ZN7ee250003fooEv();
+static VTBL_ENTRY vtc_ee25000[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25000[0]),
+ (VTBL_ENTRY)&_ZN6dd50003barEv,
+ (VTBL_ENTRY)&_ZN7ee250003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee25000[];
+extern void _ZN6dd50003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5000__7ee25000[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5000[0]),
+ (VTBL_ENTRY)&_ZN6dd50003barEv,
+};
+static VTT_ENTRY vtt_ee25000[] = {
+ {&(_ZTV7ee25000[3]), 3,5},
+ {&(_tg__ZTV6dd5000__7ee25000[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee25000[];
+extern VTBL_ENTRY _ZTV7ee25000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25000[];
+Class_Descriptor cd_ee25000 = { "ee25000", // class name
+ bases_ee25000, 4,
+ &(vtc_ee25000[0]), // expected_vtbl_contents
+ &(vtt_ee25000[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee25000),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25000),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25000),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 ee35000 : virtual dd5000 {
+ int e;
+ virtual void foo(); // _ZN7ee350003fooEv
+ ~ee35000(); // tgen
+ ee35000(); // tgen
+};
+//SIG(1 ee35000) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee35000 ::foo(){vfunc_called(this, "_ZN7ee350003fooEv");}
+ee35000 ::~ee35000(){ note_dtor("ee35000", this);} // tgen
+ee35000 ::ee35000(){ note_ctor("ee35000", this);} // tgen
+
+static void Test_ee35000()
+{
+ extern Class_Descriptor cd_ee35000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee35000, buf);
+ ee35000 *dp, &lv = *(dp=new (buf) ee35000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee35000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(28,16), "ee35000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(28,16), "ee35000");
+ check_base_class_offset(lv, (cc000*)(dd5000*), ABISELECT(28,16), "ee35000");
+ check_base_class_offset(lv, (dd5000*), ABISELECT(16,8), "ee35000");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35000.e");
+ test_class_info(&lv, &cd_ee35000);
+ dp->~ee35000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35000(Test_ee35000, "ee35000", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee35000C1Ev();
+extern void _ZN7ee35000D1Ev();
+Name_Map name_map_ee35000[] = {
+ NSPAIR(_ZN7ee35000C1Ev),
+ NSPAIR(_ZN7ee35000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd5000;
+extern VTBL_ENTRY _ZTI6dd5000[];
+extern VTBL_ENTRY _ZTV6dd5000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5000[];
+static Base_Class bases_ee35000[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5000, 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 _ZTI7ee35000[];
+extern void _ZN7ee350003fooEv();
+extern void _ZN6dd50003barEv();
+static VTBL_ENTRY vtc_ee35000[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35000[0]),
+ (VTBL_ENTRY)&_ZN7ee350003fooEv,
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35000[0]),
+ (VTBL_ENTRY)&_ZN6dd50003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee35000[];
+extern void _ZN6dd50003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5000__7ee35000[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5000[0]),
+ (VTBL_ENTRY)&_ZN6dd50003barEv,
+};
+static VTT_ENTRY vtt_ee35000[] = {
+ {&(_ZTV7ee35000[4]), 4,10},
+ {&(_ZTV7ee35000[9]), 9,10},
+ {&(_tg__ZTV6dd5000__7ee35000[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee35000[];
+extern VTBL_ENTRY _ZTV7ee35000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35000[];
+Class_Descriptor cd_ee35000 = { "ee35000", // class name
+ bases_ee35000, 4,
+ &(vtc_ee35000[0]), // expected_vtbl_contents
+ &(vtt_ee35000[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee35000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35000),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35000),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 ee45000 : dd5000 {
+ int e;
+ virtual void bar(); // _ZN7ee450003barEv
+ ~ee45000(); // tgen
+ ee45000(); // tgen
+};
+//SIG(1 ee45000) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee45000 ::bar(){vfunc_called(this, "_ZN7ee450003barEv");}
+ee45000 ::~ee45000(){ note_dtor("ee45000", this);} // tgen
+ee45000 ::ee45000(){ note_ctor("ee45000", this);} // tgen
+
+static void Test_ee45000()
+{
+ extern Class_Descriptor cd_ee45000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee45000, buf);
+ ee45000 *dp, &lv = *(dp=new (buf) ee45000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee45000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(16,12), "ee45000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(16,12), "ee45000");
+ check_base_class_offset(lv, (cc000*)(dd5000*), ABISELECT(16,12), "ee45000");
+ check_base_class_offset(lv, (dd5000*), 0, "ee45000");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45000.e");
+ test_class_info(&lv, &cd_ee45000);
+ dp->~ee45000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45000(Test_ee45000, "ee45000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee45000C1Ev();
+extern void _ZN7ee45000D1Ev();
+Name_Map name_map_ee45000[] = {
+ NSPAIR(_ZN7ee45000C1Ev),
+ NSPAIR(_ZN7ee45000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd5000;
+extern VTBL_ENTRY _ZTI6dd5000[];
+extern VTBL_ENTRY _ZTV6dd5000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5000[];
+static Base_Class bases_ee45000[] = {
+ // 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, 0},
+ {&cd_bb00, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5000, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee45000[];
+extern void _ZN7ee450003barEv();
+static VTBL_ENTRY vtc_ee45000[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45000[0]),
+ (VTBL_ENTRY)&_ZN7ee450003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee45000[];
+extern void _ZN6dd50003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5000__7ee45000[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5000[0]),
+ (VTBL_ENTRY)&_ZN6dd50003barEv,
+};
+static VTT_ENTRY vtt_ee45000[] = {
+ {&(_ZTV7ee45000[3]), 3,4},
+ {&(_tg__ZTV6dd5000__7ee45000[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee45000[];
+extern VTBL_ENTRY _ZTV7ee45000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45000[];
+Class_Descriptor cd_ee45000 = { "ee45000", // class name
+ bases_ee45000, 4,
+ &(vtc_ee45000[0]), // expected_vtbl_contents
+ &(vtt_ee45000[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee45000),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45000),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45000),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 ee55000 : virtual dd5000 {
+ int e;
+ virtual void bar(); // _ZN7ee550003barEv
+ ~ee55000(); // tgen
+ ee55000(); // tgen
+};
+//SIG(1 ee55000) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee55000 ::bar(){vfunc_called(this, "_ZN7ee550003barEv");}
+ee55000 ::~ee55000(){ note_dtor("ee55000", this);} // tgen
+ee55000 ::ee55000(){ note_ctor("ee55000", this);} // tgen
+
+static void Test_ee55000()
+{
+ extern Class_Descriptor cd_ee55000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee55000, buf);
+ ee55000 *dp, &lv = *(dp=new (buf) ee55000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee55000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(28,16), "ee55000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(28,16), "ee55000");
+ check_base_class_offset(lv, (cc000*)(dd5000*), ABISELECT(28,16), "ee55000");
+ check_base_class_offset(lv, (dd5000*), ABISELECT(16,8), "ee55000");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55000.e");
+ test_class_info(&lv, &cd_ee55000);
+ dp->~ee55000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55000(Test_ee55000, "ee55000", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee55000C1Ev();
+extern void _ZN7ee55000D1Ev();
+Name_Map name_map_ee55000[] = {
+ NSPAIR(_ZN7ee55000C1Ev),
+ NSPAIR(_ZN7ee55000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd5000;
+extern VTBL_ENTRY _ZTI6dd5000[];
+extern VTBL_ENTRY _ZTV6dd5000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5000[];
+static Base_Class bases_ee55000[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5000, 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 _ZTI7ee55000[];
+extern void _ZN7ee550003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee550003barEv,_ZTv0_n16_N7ee550003barEv)();
+extern void ABISELECT(_ZThn16_N7ee550003barEv,_ZThn8_N7ee550003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55000[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55000[0]),
+ (VTBL_ENTRY)&_ZN7ee550003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55000[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee550003barEv,_ZTv0_n16_N7ee550003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee55000[];
+extern void _ZN6dd50003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5000__7ee55000[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5000[0]),
+ (VTBL_ENTRY)&_ZN6dd50003barEv,
+};
+static VTT_ENTRY vtt_ee55000[] = {
+ {&(_ZTV7ee55000[4]), 4,10},
+ {&(_ZTV7ee55000[9]), 9,10},
+ {&(_tg__ZTV6dd5000__7ee55000[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee55000[];
+extern VTBL_ENTRY _ZTV7ee55000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55000[];
+static VTBL_ENTRY alt_thunk_names7[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee550003barEv,_ZTv0_n16_N7ee550003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee550003barEv,_ZThn8_N7ee550003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55000 = { "ee55000", // class name
+ bases_ee55000, 4,
+ &(vtc_ee55000[0]), // expected_vtbl_contents
+ &(vtt_ee55000[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee55000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55000),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55000),3, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names7,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65000 : dd5000 {
+ int e;
+ virtual void foo(); // _ZN7ee650003fooEv
+ virtual void bar(); // _ZN7ee650003barEv
+ ~ee65000(); // tgen
+ ee65000(); // tgen
+};
+//SIG(1 ee65000) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65000 ::foo(){vfunc_called(this, "_ZN7ee650003fooEv");}
+void ee65000 ::bar(){vfunc_called(this, "_ZN7ee650003barEv");}
+ee65000 ::~ee65000(){ note_dtor("ee65000", this);} // tgen
+ee65000 ::ee65000(){ note_ctor("ee65000", this);} // tgen
+
+static void Test_ee65000()
+{
+ extern Class_Descriptor cd_ee65000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee65000, buf);
+ ee65000 *dp, &lv = *(dp=new (buf) ee65000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee65000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(16,12), "ee65000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(16,12), "ee65000");
+ check_base_class_offset(lv, (cc000*)(dd5000*), ABISELECT(16,12), "ee65000");
+ check_base_class_offset(lv, (dd5000*), 0, "ee65000");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65000.e");
+ test_class_info(&lv, &cd_ee65000);
+ dp->~ee65000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65000(Test_ee65000, "ee65000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee65000C1Ev();
+extern void _ZN7ee65000D1Ev();
+Name_Map name_map_ee65000[] = {
+ NSPAIR(_ZN7ee65000C1Ev),
+ NSPAIR(_ZN7ee65000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd5000;
+extern VTBL_ENTRY _ZTI6dd5000[];
+extern VTBL_ENTRY _ZTV6dd5000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5000[];
+static Base_Class bases_ee65000[] = {
+ // 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, 0},
+ {&cd_bb00, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5000, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee65000[];
+extern void _ZN7ee650003barEv();
+extern void _ZN7ee650003fooEv();
+static VTBL_ENTRY vtc_ee65000[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65000[0]),
+ (VTBL_ENTRY)&_ZN7ee650003barEv,
+ (VTBL_ENTRY)&_ZN7ee650003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee65000[];
+extern void _ZN6dd50003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5000__7ee65000[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5000[0]),
+ (VTBL_ENTRY)&_ZN6dd50003barEv,
+};
+static VTT_ENTRY vtt_ee65000[] = {
+ {&(_ZTV7ee65000[3]), 3,5},
+ {&(_tg__ZTV6dd5000__7ee65000[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee65000[];
+extern VTBL_ENTRY _ZTV7ee65000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65000[];
+Class_Descriptor cd_ee65000 = { "ee65000", // class name
+ bases_ee65000, 4,
+ &(vtc_ee65000[0]), // expected_vtbl_contents
+ &(vtt_ee65000[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee65000),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65000),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65000),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 ee75000 : virtual dd5000 {
+ int e;
+ virtual void foo(); // _ZN7ee750003fooEv
+ virtual void bar(); // _ZN7ee750003barEv
+ ~ee75000(); // tgen
+ ee75000(); // tgen
+};
+//SIG(1 ee75000) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75000 ::foo(){vfunc_called(this, "_ZN7ee750003fooEv");}
+void ee75000 ::bar(){vfunc_called(this, "_ZN7ee750003barEv");}
+ee75000 ::~ee75000(){ note_dtor("ee75000", this);} // tgen
+ee75000 ::ee75000(){ note_ctor("ee75000", this);} // tgen
+
+static void Test_ee75000()
+{
+ extern Class_Descriptor cd_ee75000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee75000, buf);
+ ee75000 *dp, &lv = *(dp=new (buf) ee75000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee75000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(28,16), "ee75000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(28,16), "ee75000");
+ check_base_class_offset(lv, (cc000*)(dd5000*), ABISELECT(28,16), "ee75000");
+ check_base_class_offset(lv, (dd5000*), ABISELECT(16,8), "ee75000");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75000.e");
+ test_class_info(&lv, &cd_ee75000);
+ dp->~ee75000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75000(Test_ee75000, "ee75000", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee75000C1Ev();
+extern void _ZN7ee75000D1Ev();
+Name_Map name_map_ee75000[] = {
+ NSPAIR(_ZN7ee75000C1Ev),
+ NSPAIR(_ZN7ee75000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd5000;
+extern VTBL_ENTRY _ZTI6dd5000[];
+extern VTBL_ENTRY _ZTV6dd5000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5000[];
+static Base_Class bases_ee75000[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5000, 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 _ZTI7ee75000[];
+extern void _ZN7ee750003fooEv();
+extern void _ZN7ee750003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee750003barEv,_ZTv0_n16_N7ee750003barEv)();
+extern void ABISELECT(_ZThn16_N7ee750003barEv,_ZThn8_N7ee750003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75000[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75000[0]),
+ (VTBL_ENTRY)&_ZN7ee750003fooEv,
+ (VTBL_ENTRY)&_ZN7ee750003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75000[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee750003barEv,_ZTv0_n16_N7ee750003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee75000[];
+extern void _ZN6dd50003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5000__7ee75000[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5000[0]),
+ (VTBL_ENTRY)&_ZN6dd50003barEv,
+};
+static VTT_ENTRY vtt_ee75000[] = {
+ {&(_ZTV7ee75000[4]), 4,11},
+ {&(_ZTV7ee75000[10]), 10,11},
+ {&(_tg__ZTV6dd5000__7ee75000[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee75000[];
+extern VTBL_ENTRY _ZTV7ee75000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75000[];
+static VTBL_ENTRY alt_thunk_names8[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee750003barEv,_ZTv0_n16_N7ee750003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee750003barEv,_ZThn8_N7ee750003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75000 = { "ee75000", // class name
+ bases_ee75000, 4,
+ &(vtc_ee75000[0]), // expected_vtbl_contents
+ &(vtt_ee75000[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee75000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75000),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75000),3, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names8,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6000 : cc000 {
+ int d;
+ virtual void bar(); // _ZN6dd60003barEv
+ virtual void foo(); // _ZN6dd60003fooEv
+ ~dd6000(); // tgen
+ dd6000(); // tgen
+};
+//SIG(-1 dd6000) C1{ BC2{ BC3{ BC4{ Fi} Fi} Fi} v1 v2 Fi}
+
+
+void dd6000 ::bar(){vfunc_called(this, "_ZN6dd60003barEv");}
+void dd6000 ::foo(){vfunc_called(this, "_ZN6dd60003fooEv");}
+dd6000 ::~dd6000(){ note_dtor("dd6000", this);} // tgen
+dd6000 ::dd6000(){ note_ctor("dd6000", this);} // tgen
+
+static void Test_dd6000()
+{
+ extern Class_Descriptor cd_dd6000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd6000, buf);
+ dd6000 *dp, &lv = *(dp=new (buf) dd6000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd6000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(8,4), "dd6000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(8,4), "dd6000");
+ check_base_class_offset(lv, (cc000*), ABISELECT(8,4), "dd6000");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd6000.d");
+ test_class_info(&lv, &cd_dd6000);
+ dp->~dd6000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6000(Test_dd6000, "dd6000", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd6000C1Ev();
+extern void _ZN6dd6000D1Ev();
+Name_Map name_map_dd6000[] = {
+ NSPAIR(_ZN6dd6000C1Ev),
+ NSPAIR(_ZN6dd6000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+static Base_Class bases_dd6000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd6000[];
+extern void _ZN6dd60003barEv();
+extern void _ZN6dd60003fooEv();
+static VTBL_ENTRY vtc_dd6000[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6000[0]),
+ (VTBL_ENTRY)&_ZN6dd60003barEv,
+ (VTBL_ENTRY)&_ZN6dd60003fooEv,
+};
+extern VTBL_ENTRY _ZTI6dd6000[];
+extern VTBL_ENTRY _ZTV6dd6000[];
+Class_Descriptor cd_dd6000 = { "dd6000", // class name
+ bases_dd6000, 3,
+ &(vtc_dd6000[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd6000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd6000),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 ee06000 : dd6000 {
+ int e;
+ ~ee06000(); // tgen
+ ee06000(); // tgen
+};
+//SIG(1 ee06000) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee06000 ::~ee06000(){ note_dtor("ee06000", this);} // tgen
+ee06000 ::ee06000(){ note_ctor("ee06000", this);} // tgen
+
+static void Test_ee06000()
+{
+ extern Class_Descriptor cd_ee06000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee06000, buf);
+ ee06000 *dp, &lv = *(dp=new (buf) ee06000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee06000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*)(dd6000*), ABISELECT(8,4), "ee06000");
+ check_base_class_offset(lv, (bb00*)(cc000*)(dd6000*), ABISELECT(8,4), "ee06000");
+ check_base_class_offset(lv, (cc000*)(dd6000*), ABISELECT(8,4), "ee06000");
+ check_base_class_offset(lv, (dd6000*), 0, "ee06000");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee06000.e");
+ test_class_info(&lv, &cd_ee06000);
+ dp->~ee06000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06000(Test_ee06000, "ee06000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee06000C1Ev();
+extern void _ZN7ee06000D1Ev();
+Name_Map name_map_ee06000[] = {
+ NSPAIR(_ZN7ee06000C1Ev),
+ NSPAIR(_ZN7ee06000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd6000;
+extern VTBL_ENTRY _ZTI6dd6000[];
+extern VTBL_ENTRY _ZTV6dd6000[];
+static Base_Class bases_ee06000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6000, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06000[];
+extern void _ZN6dd60003barEv();
+extern void _ZN6dd60003fooEv();
+static VTBL_ENTRY vtc_ee06000[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06000[0]),
+ (VTBL_ENTRY)&_ZN6dd60003barEv,
+ (VTBL_ENTRY)&_ZN6dd60003fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee06000[];
+extern VTBL_ENTRY _ZTV7ee06000[];
+Class_Descriptor cd_ee06000 = { "ee06000", // class name
+ bases_ee06000, 4,
+ &(vtc_ee06000[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee06000),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06000),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 1, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee16000 : virtual dd6000 {
+ int e;
+ ~ee16000(); // tgen
+ ee16000(); // tgen
+};
+//SIG(1 ee16000) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee16000 ::~ee16000(){ note_dtor("ee16000", this);} // tgen
+ee16000 ::ee16000(){ note_ctor("ee16000", this);} // tgen
+
+static void Test_ee16000()
+{
+ extern Class_Descriptor cd_ee16000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee16000, buf);
+ ee16000 *dp, &lv = *(dp=new (buf) ee16000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee16000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*)(dd6000*), ABISELECT(24,12), "ee16000");
+ check_base_class_offset(lv, (bb00*)(cc000*)(dd6000*), ABISELECT(24,12), "ee16000");
+ check_base_class_offset(lv, (cc000*)(dd6000*), ABISELECT(24,12), "ee16000");
+ check_base_class_offset(lv, (dd6000*), ABISELECT(16,8), "ee16000");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16000.e");
+ test_class_info(&lv, &cd_ee16000);
+ dp->~ee16000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16000(Test_ee16000, "ee16000", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee16000C1Ev();
+extern void _ZN7ee16000D1Ev();
+Name_Map name_map_ee16000[] = {
+ NSPAIR(_ZN7ee16000C1Ev),
+ NSPAIR(_ZN7ee16000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd6000;
+extern VTBL_ENTRY _ZTI6dd6000[];
+extern VTBL_ENTRY _ZTV6dd6000[];
+static Base_Class bases_ee16000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(24,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
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6000, ABISELECT(16,8), //bcp->offset
+ 3, //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 _ZTI7ee16000[];
+extern void _ZN6dd60003barEv();
+extern void _ZN6dd60003fooEv();
+static VTBL_ENTRY vtc_ee16000[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16000[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16000[0]),
+ (VTBL_ENTRY)&_ZN6dd60003barEv,
+ (VTBL_ENTRY)&_ZN6dd60003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee16000[];
+static VTT_ENTRY vtt_ee16000[] = {
+ {&(_ZTV7ee16000[3]), 3,9},
+ {&(_ZTV7ee16000[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee16000[];
+extern VTBL_ENTRY _ZTV7ee16000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16000[];
+Class_Descriptor cd_ee16000 = { "ee16000", // class name
+ bases_ee16000, 4,
+ &(vtc_ee16000[0]), // expected_vtbl_contents
+ &(vtt_ee16000[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee16000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16000),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16000),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 ee26000 : dd6000 {
+ int e;
+ virtual void foo(); // _ZN7ee260003fooEv
+ ~ee26000(); // tgen
+ ee26000(); // tgen
+};
+//SIG(1 ee26000) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26000 ::foo(){vfunc_called(this, "_ZN7ee260003fooEv");}
+ee26000 ::~ee26000(){ note_dtor("ee26000", this);} // tgen
+ee26000 ::ee26000(){ note_ctor("ee26000", this);} // tgen
+
+static void Test_ee26000()
+{
+ extern Class_Descriptor cd_ee26000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee26000, buf);
+ ee26000 *dp, &lv = *(dp=new (buf) ee26000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee26000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*)(dd6000*), ABISELECT(8,4), "ee26000");
+ check_base_class_offset(lv, (bb00*)(cc000*)(dd6000*), ABISELECT(8,4), "ee26000");
+ check_base_class_offset(lv, (cc000*)(dd6000*), ABISELECT(8,4), "ee26000");
+ check_base_class_offset(lv, (dd6000*), 0, "ee26000");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee26000.e");
+ test_class_info(&lv, &cd_ee26000);
+ dp->~ee26000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26000(Test_ee26000, "ee26000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee26000C1Ev();
+extern void _ZN7ee26000D1Ev();
+Name_Map name_map_ee26000[] = {
+ NSPAIR(_ZN7ee26000C1Ev),
+ NSPAIR(_ZN7ee26000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd6000;
+extern VTBL_ENTRY _ZTI6dd6000[];
+extern VTBL_ENTRY _ZTV6dd6000[];
+static Base_Class bases_ee26000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6000, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26000[];
+extern void _ZN6dd60003barEv();
+extern void _ZN7ee260003fooEv();
+static VTBL_ENTRY vtc_ee26000[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26000[0]),
+ (VTBL_ENTRY)&_ZN6dd60003barEv,
+ (VTBL_ENTRY)&_ZN7ee260003fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee26000[];
+extern VTBL_ENTRY _ZTV7ee26000[];
+Class_Descriptor cd_ee26000 = { "ee26000", // class name
+ bases_ee26000, 4,
+ &(vtc_ee26000[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee26000),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26000),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 1, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee36000 : virtual dd6000 {
+ int e;
+ virtual void foo(); // _ZN7ee360003fooEv
+ ~ee36000(); // tgen
+ ee36000(); // tgen
+};
+//SIG(1 ee36000) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36000 ::foo(){vfunc_called(this, "_ZN7ee360003fooEv");}
+ee36000 ::~ee36000(){ note_dtor("ee36000", this);} // tgen
+ee36000 ::ee36000(){ note_ctor("ee36000", this);} // tgen
+
+static void Test_ee36000()
+{
+ extern Class_Descriptor cd_ee36000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee36000, buf);
+ ee36000 *dp, &lv = *(dp=new (buf) ee36000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee36000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*)(dd6000*), ABISELECT(24,12), "ee36000");
+ check_base_class_offset(lv, (bb00*)(cc000*)(dd6000*), ABISELECT(24,12), "ee36000");
+ check_base_class_offset(lv, (cc000*)(dd6000*), ABISELECT(24,12), "ee36000");
+ check_base_class_offset(lv, (dd6000*), ABISELECT(16,8), "ee36000");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36000.e");
+ test_class_info(&lv, &cd_ee36000);
+ dp->~ee36000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36000(Test_ee36000, "ee36000", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee36000C1Ev();
+extern void _ZN7ee36000D1Ev();
+Name_Map name_map_ee36000[] = {
+ NSPAIR(_ZN7ee36000C1Ev),
+ NSPAIR(_ZN7ee36000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd6000;
+extern VTBL_ENTRY _ZTI6dd6000[];
+extern VTBL_ENTRY _ZTV6dd6000[];
+static Base_Class bases_ee36000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(24,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
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6000, 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 _ZTI7ee36000[];
+extern void _ZN7ee360003fooEv();
+extern void _ZN6dd60003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee360003fooEv,_ZTv0_n16_N7ee360003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee360003fooEv,_ZThn8_N7ee360003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36000[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36000[0]),
+ (VTBL_ENTRY)&_ZN7ee360003fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36000[0]),
+ (VTBL_ENTRY)&_ZN6dd60003barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee360003fooEv,_ZTv0_n16_N7ee360003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee36000[];
+static VTT_ENTRY vtt_ee36000[] = {
+ {&(_ZTV7ee36000[3]), 3,10},
+ {&(_ZTV7ee36000[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee36000[];
+extern VTBL_ENTRY _ZTV7ee36000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36000[];
+static VTBL_ENTRY alt_thunk_names9[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee360003fooEv,_ZTv0_n16_N7ee360003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee360003fooEv,_ZThn8_N7ee360003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36000 = { "ee36000", // class name
+ bases_ee36000, 4,
+ &(vtc_ee36000[0]), // expected_vtbl_contents
+ &(vtt_ee36000[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee36000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36000),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36000),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names9,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46000 : dd6000 {
+ int e;
+ virtual void bar(); // _ZN7ee460003barEv
+ ~ee46000(); // tgen
+ ee46000(); // tgen
+};
+//SIG(1 ee46000) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46000 ::bar(){vfunc_called(this, "_ZN7ee460003barEv");}
+ee46000 ::~ee46000(){ note_dtor("ee46000", this);} // tgen
+ee46000 ::ee46000(){ note_ctor("ee46000", this);} // tgen
+
+static void Test_ee46000()
+{
+ extern Class_Descriptor cd_ee46000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee46000, buf);
+ ee46000 *dp, &lv = *(dp=new (buf) ee46000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee46000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*)(dd6000*), ABISELECT(8,4), "ee46000");
+ check_base_class_offset(lv, (bb00*)(cc000*)(dd6000*), ABISELECT(8,4), "ee46000");
+ check_base_class_offset(lv, (cc000*)(dd6000*), ABISELECT(8,4), "ee46000");
+ check_base_class_offset(lv, (dd6000*), 0, "ee46000");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee46000.e");
+ test_class_info(&lv, &cd_ee46000);
+ dp->~ee46000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46000(Test_ee46000, "ee46000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee46000C1Ev();
+extern void _ZN7ee46000D1Ev();
+Name_Map name_map_ee46000[] = {
+ NSPAIR(_ZN7ee46000C1Ev),
+ NSPAIR(_ZN7ee46000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd6000;
+extern VTBL_ENTRY _ZTI6dd6000[];
+extern VTBL_ENTRY _ZTV6dd6000[];
+static Base_Class bases_ee46000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6000, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46000[];
+extern void _ZN7ee460003barEv();
+extern void _ZN6dd60003fooEv();
+static VTBL_ENTRY vtc_ee46000[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46000[0]),
+ (VTBL_ENTRY)&_ZN7ee460003barEv,
+ (VTBL_ENTRY)&_ZN6dd60003fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee46000[];
+extern VTBL_ENTRY _ZTV7ee46000[];
+Class_Descriptor cd_ee46000 = { "ee46000", // class name
+ bases_ee46000, 4,
+ &(vtc_ee46000[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee46000),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46000),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 1, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee56000 : virtual dd6000 {
+ int e;
+ virtual void bar(); // _ZN7ee560003barEv
+ ~ee56000(); // tgen
+ ee56000(); // tgen
+};
+//SIG(1 ee56000) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56000 ::bar(){vfunc_called(this, "_ZN7ee560003barEv");}
+ee56000 ::~ee56000(){ note_dtor("ee56000", this);} // tgen
+ee56000 ::ee56000(){ note_ctor("ee56000", this);} // tgen
+
+static void Test_ee56000()
+{
+ extern Class_Descriptor cd_ee56000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee56000, buf);
+ ee56000 *dp, &lv = *(dp=new (buf) ee56000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee56000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*)(dd6000*), ABISELECT(24,12), "ee56000");
+ check_base_class_offset(lv, (bb00*)(cc000*)(dd6000*), ABISELECT(24,12), "ee56000");
+ check_base_class_offset(lv, (cc000*)(dd6000*), ABISELECT(24,12), "ee56000");
+ check_base_class_offset(lv, (dd6000*), ABISELECT(16,8), "ee56000");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56000.e");
+ test_class_info(&lv, &cd_ee56000);
+ dp->~ee56000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56000(Test_ee56000, "ee56000", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee56000C1Ev();
+extern void _ZN7ee56000D1Ev();
+Name_Map name_map_ee56000[] = {
+ NSPAIR(_ZN7ee56000C1Ev),
+ NSPAIR(_ZN7ee56000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd6000;
+extern VTBL_ENTRY _ZTI6dd6000[];
+extern VTBL_ENTRY _ZTV6dd6000[];
+static Base_Class bases_ee56000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(24,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
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6000, 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 _ZTI7ee56000[];
+extern void _ZN7ee560003barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee560003barEv,_ZTv0_n12_N7ee560003barEv)();
+extern void ABISELECT(_ZThn16_N7ee560003barEv,_ZThn8_N7ee560003barEv)() __attribute__((weak));
+extern void _ZN6dd60003fooEv();
+static VTBL_ENTRY vtc_ee56000[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56000[0]),
+ (VTBL_ENTRY)&_ZN7ee560003barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56000[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee560003barEv,_ZTv0_n12_N7ee560003barEv),
+ (VTBL_ENTRY)&_ZN6dd60003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee56000[];
+static VTT_ENTRY vtt_ee56000[] = {
+ {&(_ZTV7ee56000[3]), 3,10},
+ {&(_ZTV7ee56000[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee56000[];
+extern VTBL_ENTRY _ZTV7ee56000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56000[];
+static VTBL_ENTRY alt_thunk_names10[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee560003barEv,_ZTv0_n12_N7ee560003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee560003barEv,_ZThn8_N7ee560003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56000 = { "ee56000", // class name
+ bases_ee56000, 4,
+ &(vtc_ee56000[0]), // expected_vtbl_contents
+ &(vtt_ee56000[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee56000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56000),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56000),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names10,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66000 : dd6000 {
+ int e;
+ virtual void foo(); // _ZN7ee660003fooEv
+ virtual void bar(); // _ZN7ee660003barEv
+ ~ee66000(); // tgen
+ ee66000(); // tgen
+};
+//SIG(1 ee66000) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66000 ::foo(){vfunc_called(this, "_ZN7ee660003fooEv");}
+void ee66000 ::bar(){vfunc_called(this, "_ZN7ee660003barEv");}
+ee66000 ::~ee66000(){ note_dtor("ee66000", this);} // tgen
+ee66000 ::ee66000(){ note_ctor("ee66000", this);} // tgen
+
+static void Test_ee66000()
+{
+ extern Class_Descriptor cd_ee66000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee66000, buf);
+ ee66000 *dp, &lv = *(dp=new (buf) ee66000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee66000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*)(dd6000*), ABISELECT(8,4), "ee66000");
+ check_base_class_offset(lv, (bb00*)(cc000*)(dd6000*), ABISELECT(8,4), "ee66000");
+ check_base_class_offset(lv, (cc000*)(dd6000*), ABISELECT(8,4), "ee66000");
+ check_base_class_offset(lv, (dd6000*), 0, "ee66000");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee66000.e");
+ test_class_info(&lv, &cd_ee66000);
+ dp->~ee66000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66000(Test_ee66000, "ee66000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee66000C1Ev();
+extern void _ZN7ee66000D1Ev();
+Name_Map name_map_ee66000[] = {
+ NSPAIR(_ZN7ee66000C1Ev),
+ NSPAIR(_ZN7ee66000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd6000;
+extern VTBL_ENTRY _ZTI6dd6000[];
+extern VTBL_ENTRY _ZTV6dd6000[];
+static Base_Class bases_ee66000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6000, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66000[];
+extern void _ZN7ee660003barEv();
+extern void _ZN7ee660003fooEv();
+static VTBL_ENTRY vtc_ee66000[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66000[0]),
+ (VTBL_ENTRY)&_ZN7ee660003barEv,
+ (VTBL_ENTRY)&_ZN7ee660003fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee66000[];
+extern VTBL_ENTRY _ZTV7ee66000[];
+Class_Descriptor cd_ee66000 = { "ee66000", // class name
+ bases_ee66000, 4,
+ &(vtc_ee66000[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee66000),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66000),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 1, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee76000 : virtual dd6000 {
+ int e;
+ virtual void foo(); // _ZN7ee760003fooEv
+ virtual void bar(); // _ZN7ee760003barEv
+ ~ee76000(); // tgen
+ ee76000(); // tgen
+};
+//SIG(1 ee76000) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76000 ::foo(){vfunc_called(this, "_ZN7ee760003fooEv");}
+void ee76000 ::bar(){vfunc_called(this, "_ZN7ee760003barEv");}
+ee76000 ::~ee76000(){ note_dtor("ee76000", this);} // tgen
+ee76000 ::ee76000(){ note_ctor("ee76000", this);} // tgen
+
+static void Test_ee76000()
+{
+ extern Class_Descriptor cd_ee76000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee76000, buf);
+ ee76000 *dp, &lv = *(dp=new (buf) ee76000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee76000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*)(dd6000*), ABISELECT(24,12), "ee76000");
+ check_base_class_offset(lv, (bb00*)(cc000*)(dd6000*), ABISELECT(24,12), "ee76000");
+ check_base_class_offset(lv, (cc000*)(dd6000*), ABISELECT(24,12), "ee76000");
+ check_base_class_offset(lv, (dd6000*), ABISELECT(16,8), "ee76000");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76000.e");
+ test_class_info(&lv, &cd_ee76000);
+ dp->~ee76000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76000(Test_ee76000, "ee76000", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee76000C1Ev();
+extern void _ZN7ee76000D1Ev();
+Name_Map name_map_ee76000[] = {
+ NSPAIR(_ZN7ee76000C1Ev),
+ NSPAIR(_ZN7ee76000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd6000;
+extern VTBL_ENTRY _ZTI6dd6000[];
+extern VTBL_ENTRY _ZTV6dd6000[];
+static Base_Class bases_ee76000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(24,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
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6000, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee76000[];
+extern void _ZN7ee760003fooEv();
+extern void _ZN7ee760003barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee760003barEv,_ZTv0_n12_N7ee760003barEv)();
+extern void ABISELECT(_ZThn16_N7ee760003barEv,_ZThn8_N7ee760003barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee760003fooEv,_ZTv0_n16_N7ee760003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee760003fooEv,_ZThn8_N7ee760003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76000[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76000[0]),
+ (VTBL_ENTRY)&_ZN7ee760003fooEv,
+ (VTBL_ENTRY)&_ZN7ee760003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76000[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee760003barEv,_ZTv0_n12_N7ee760003barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee760003fooEv,_ZTv0_n16_N7ee760003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee76000[];
+static VTT_ENTRY vtt_ee76000[] = {
+ {&(_ZTV7ee76000[3]), 3,11},
+ {&(_ZTV7ee76000[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee76000[];
+extern VTBL_ENTRY _ZTV7ee76000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76000[];
+static VTBL_ENTRY alt_thunk_names11[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee760003fooEv,_ZTv0_n16_N7ee760003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee760003fooEv,_ZThn8_N7ee760003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee760003barEv,_ZTv0_n12_N7ee760003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee760003barEv,_ZThn8_N7ee760003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76000 = { "ee76000", // class name
+ bases_ee76000, 4,
+ &(vtc_ee76000[0]), // expected_vtbl_contents
+ &(vtt_ee76000[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee76000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76000),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76000),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names11,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7000 : virtual cc000 {
+ int d;
+ virtual void bar(); // _ZN6dd70003barEv
+ virtual void foo(); // _ZN6dd70003fooEv
+ ~dd7000(); // tgen
+ dd7000(); // tgen
+};
+//SIG(-1 dd7000) C1{ VBC2{ BC3{ BC4{ Fi} Fi} Fi} v1 v2 Fi}
+
+
+void dd7000 ::bar(){vfunc_called(this, "_ZN6dd70003barEv");}
+void dd7000 ::foo(){vfunc_called(this, "_ZN6dd70003fooEv");}
+dd7000 ::~dd7000(){ note_dtor("dd7000", this);} // tgen
+dd7000 ::dd7000(){ note_ctor("dd7000", this);} // tgen
+
+static void Test_dd7000()
+{
+ extern Class_Descriptor cd_dd7000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd7000, buf);
+ dd7000 *dp, &lv = *(dp=new (buf) dd7000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd7000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(12,8), "dd7000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(12,8), "dd7000");
+ check_base_class_offset(lv, (cc000*), ABISELECT(12,8), "dd7000");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7000.d");
+ test_class_info(&lv, &cd_dd7000);
+ dp->~dd7000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7000(Test_dd7000, "dd7000", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd7000C1Ev();
+extern void _ZN6dd7000D1Ev();
+Name_Map name_map_dd7000[] = {
+ NSPAIR(_ZN6dd7000C1Ev),
+ NSPAIR(_ZN6dd7000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+static Base_Class bases_dd7000[] = {
+ // 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
+ 0, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, 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 _ZTI6dd7000[];
+extern void _ZN6dd70003barEv();
+extern void _ZN6dd70003fooEv();
+static VTBL_ENTRY vtc_dd7000[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7000[0]),
+ (VTBL_ENTRY)&_ZN6dd70003barEv,
+ (VTBL_ENTRY)&_ZN6dd70003fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd7000[];
+static VTT_ENTRY vtt_dd7000[] = {
+ {&(_ZTV6dd7000[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI6dd7000[];
+extern VTBL_ENTRY _ZTV6dd7000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7000[];
+Class_Descriptor cd_dd7000 = { "dd7000", // class name
+ bases_dd7000, 3,
+ &(vtc_dd7000[0]), // expected_vtbl_contents
+ &(vtt_dd7000[0]), // expected_vtt_contents
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd7000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7000),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7000),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 ee07000 : dd7000 {
+ int e;
+ ~ee07000(); // tgen
+ ee07000(); // tgen
+};
+//SIG(1 ee07000) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee07000 ::~ee07000(){ note_dtor("ee07000", this);} // tgen
+ee07000 ::ee07000(){ note_ctor("ee07000", this);} // tgen
+
+static void Test_ee07000()
+{
+ extern Class_Descriptor cd_ee07000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee07000, buf);
+ ee07000 *dp, &lv = *(dp=new (buf) ee07000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee07000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(16,12), "ee07000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(16,12), "ee07000");
+ check_base_class_offset(lv, (cc000*)(dd7000*), ABISELECT(16,12), "ee07000");
+ check_base_class_offset(lv, (dd7000*), 0, "ee07000");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07000.e");
+ test_class_info(&lv, &cd_ee07000);
+ dp->~ee07000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07000(Test_ee07000, "ee07000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee07000C1Ev();
+extern void _ZN7ee07000D1Ev();
+Name_Map name_map_ee07000[] = {
+ NSPAIR(_ZN7ee07000C1Ev),
+ NSPAIR(_ZN7ee07000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd7000;
+extern VTBL_ENTRY _ZTI6dd7000[];
+extern VTBL_ENTRY _ZTV6dd7000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7000[];
+static Base_Class bases_ee07000[] = {
+ // 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, 0},
+ {&cd_bb00, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7000, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee07000[];
+extern void _ZN6dd70003barEv();
+extern void _ZN6dd70003fooEv();
+static VTBL_ENTRY vtc_ee07000[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07000[0]),
+ (VTBL_ENTRY)&_ZN6dd70003barEv,
+ (VTBL_ENTRY)&_ZN6dd70003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee07000[];
+extern void _ZN6dd70003barEv();
+extern void _ZN6dd70003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7000__7ee07000[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7000[0]),
+ (VTBL_ENTRY)&_ZN6dd70003barEv,
+ (VTBL_ENTRY)&_ZN6dd70003fooEv,
+};
+static VTT_ENTRY vtt_ee07000[] = {
+ {&(_ZTV7ee07000[3]), 3,5},
+ {&(_tg__ZTV6dd7000__7ee07000[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee07000[];
+extern VTBL_ENTRY _ZTV7ee07000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07000[];
+Class_Descriptor cd_ee07000 = { "ee07000", // class name
+ bases_ee07000, 4,
+ &(vtc_ee07000[0]), // expected_vtbl_contents
+ &(vtt_ee07000[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee07000),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07000),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07000),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 ee17000 : virtual dd7000 {
+ int e;
+ ~ee17000(); // tgen
+ ee17000(); // tgen
+};
+//SIG(1 ee17000) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee17000 ::~ee17000(){ note_dtor("ee17000", this);} // tgen
+ee17000 ::ee17000(){ note_ctor("ee17000", this);} // tgen
+
+static void Test_ee17000()
+{
+ extern Class_Descriptor cd_ee17000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee17000, buf);
+ ee17000 *dp, &lv = *(dp=new (buf) ee17000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee17000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(28,16), "ee17000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(28,16), "ee17000");
+ check_base_class_offset(lv, (cc000*)(dd7000*), ABISELECT(28,16), "ee17000");
+ check_base_class_offset(lv, (dd7000*), ABISELECT(16,8), "ee17000");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17000.e");
+ test_class_info(&lv, &cd_ee17000);
+ dp->~ee17000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17000(Test_ee17000, "ee17000", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee17000C1Ev();
+extern void _ZN7ee17000D1Ev();
+Name_Map name_map_ee17000[] = {
+ NSPAIR(_ZN7ee17000C1Ev),
+ NSPAIR(_ZN7ee17000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd7000;
+extern VTBL_ENTRY _ZTI6dd7000[];
+extern VTBL_ENTRY _ZTV6dd7000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7000[];
+static Base_Class bases_ee17000[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7000, 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
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee17000[];
+extern void _ZN6dd70003barEv();
+extern void _ZN6dd70003fooEv();
+static VTBL_ENTRY vtc_ee17000[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17000[0]),
+ 0,
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17000[0]),
+ (VTBL_ENTRY)&_ZN6dd70003barEv,
+ (VTBL_ENTRY)&_ZN6dd70003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee17000[];
+extern void _ZN6dd70003barEv();
+extern void _ZN6dd70003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7000__7ee17000[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7000[0]),
+ (VTBL_ENTRY)&_ZN6dd70003barEv,
+ (VTBL_ENTRY)&_ZN6dd70003fooEv,
+};
+static VTT_ENTRY vtt_ee17000[] = {
+ {&(_ZTV7ee17000[4]), 4,11},
+ {&(_ZTV7ee17000[9]), 9,11},
+ {&(_tg__ZTV6dd7000__7ee17000[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee17000[];
+extern VTBL_ENTRY _ZTV7ee17000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17000[];
+Class_Descriptor cd_ee17000 = { "ee17000", // class name
+ bases_ee17000, 4,
+ &(vtc_ee17000[0]), // expected_vtbl_contents
+ &(vtt_ee17000[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee17000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17000),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17000),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 ee27000 : dd7000 {
+ int e;
+ virtual void foo(); // _ZN7ee270003fooEv
+ ~ee27000(); // tgen
+ ee27000(); // tgen
+};
+//SIG(1 ee27000) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27000 ::foo(){vfunc_called(this, "_ZN7ee270003fooEv");}
+ee27000 ::~ee27000(){ note_dtor("ee27000", this);} // tgen
+ee27000 ::ee27000(){ note_ctor("ee27000", this);} // tgen
+
+static void Test_ee27000()
+{
+ extern Class_Descriptor cd_ee27000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee27000, buf);
+ ee27000 *dp, &lv = *(dp=new (buf) ee27000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee27000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(16,12), "ee27000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(16,12), "ee27000");
+ check_base_class_offset(lv, (cc000*)(dd7000*), ABISELECT(16,12), "ee27000");
+ check_base_class_offset(lv, (dd7000*), 0, "ee27000");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27000.e");
+ test_class_info(&lv, &cd_ee27000);
+ dp->~ee27000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27000(Test_ee27000, "ee27000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee27000C1Ev();
+extern void _ZN7ee27000D1Ev();
+Name_Map name_map_ee27000[] = {
+ NSPAIR(_ZN7ee27000C1Ev),
+ NSPAIR(_ZN7ee27000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd7000;
+extern VTBL_ENTRY _ZTI6dd7000[];
+extern VTBL_ENTRY _ZTV6dd7000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7000[];
+static Base_Class bases_ee27000[] = {
+ // 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, 0},
+ {&cd_bb00, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7000, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee27000[];
+extern void _ZN6dd70003barEv();
+extern void _ZN7ee270003fooEv();
+static VTBL_ENTRY vtc_ee27000[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27000[0]),
+ (VTBL_ENTRY)&_ZN6dd70003barEv,
+ (VTBL_ENTRY)&_ZN7ee270003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee27000[];
+extern void _ZN6dd70003barEv();
+extern void _ZN6dd70003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7000__7ee27000[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7000[0]),
+ (VTBL_ENTRY)&_ZN6dd70003barEv,
+ (VTBL_ENTRY)&_ZN6dd70003fooEv,
+};
+static VTT_ENTRY vtt_ee27000[] = {
+ {&(_ZTV7ee27000[3]), 3,5},
+ {&(_tg__ZTV6dd7000__7ee27000[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee27000[];
+extern VTBL_ENTRY _ZTV7ee27000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27000[];
+Class_Descriptor cd_ee27000 = { "ee27000", // class name
+ bases_ee27000, 4,
+ &(vtc_ee27000[0]), // expected_vtbl_contents
+ &(vtt_ee27000[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee27000),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27000),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27000),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 ee37000 : virtual dd7000 {
+ int e;
+ virtual void foo(); // _ZN7ee370003fooEv
+ ~ee37000(); // tgen
+ ee37000(); // tgen
+};
+//SIG(1 ee37000) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37000 ::foo(){vfunc_called(this, "_ZN7ee370003fooEv");}
+ee37000 ::~ee37000(){ note_dtor("ee37000", this);} // tgen
+ee37000 ::ee37000(){ note_ctor("ee37000", this);} // tgen
+
+static void Test_ee37000()
+{
+ extern Class_Descriptor cd_ee37000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee37000, buf);
+ ee37000 *dp, &lv = *(dp=new (buf) ee37000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee37000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(28,16), "ee37000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(28,16), "ee37000");
+ check_base_class_offset(lv, (cc000*)(dd7000*), ABISELECT(28,16), "ee37000");
+ check_base_class_offset(lv, (dd7000*), ABISELECT(16,8), "ee37000");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37000.e");
+ test_class_info(&lv, &cd_ee37000);
+ dp->~ee37000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37000(Test_ee37000, "ee37000", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee37000C1Ev();
+extern void _ZN7ee37000D1Ev();
+Name_Map name_map_ee37000[] = {
+ NSPAIR(_ZN7ee37000C1Ev),
+ NSPAIR(_ZN7ee37000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd7000;
+extern VTBL_ENTRY _ZTI6dd7000[];
+extern VTBL_ENTRY _ZTV6dd7000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7000[];
+static Base_Class bases_ee37000[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7000, 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
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee37000[];
+extern void _ZN7ee370003fooEv();
+extern void _ZN6dd70003barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee370003fooEv,_ZTv0_n20_N7ee370003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee370003fooEv,_ZThn8_N7ee370003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37000[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37000[0]),
+ (VTBL_ENTRY)&_ZN7ee370003fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37000[0]),
+ (VTBL_ENTRY)&_ZN6dd70003barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee370003fooEv,_ZTv0_n20_N7ee370003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee37000[];
+extern void _ZN6dd70003barEv();
+extern void _ZN6dd70003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7000__7ee37000[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7000[0]),
+ (VTBL_ENTRY)&_ZN6dd70003barEv,
+ (VTBL_ENTRY)&_ZN6dd70003fooEv,
+};
+static VTT_ENTRY vtt_ee37000[] = {
+ {&(_ZTV7ee37000[4]), 4,12},
+ {&(_ZTV7ee37000[10]), 10,12},
+ {&(_tg__ZTV6dd7000__7ee37000[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee37000[];
+extern VTBL_ENTRY _ZTV7ee37000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37000[];
+static VTBL_ENTRY alt_thunk_names12[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee370003fooEv,_ZTv0_n20_N7ee370003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee370003fooEv,_ZThn8_N7ee370003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37000 = { "ee37000", // class name
+ bases_ee37000, 4,
+ &(vtc_ee37000[0]), // expected_vtbl_contents
+ &(vtt_ee37000[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee37000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37000),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37000),3, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names12,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47000 : dd7000 {
+ int e;
+ virtual void bar(); // _ZN7ee470003barEv
+ ~ee47000(); // tgen
+ ee47000(); // tgen
+};
+//SIG(1 ee47000) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47000 ::bar(){vfunc_called(this, "_ZN7ee470003barEv");}
+ee47000 ::~ee47000(){ note_dtor("ee47000", this);} // tgen
+ee47000 ::ee47000(){ note_ctor("ee47000", this);} // tgen
+
+static void Test_ee47000()
+{
+ extern Class_Descriptor cd_ee47000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee47000, buf);
+ ee47000 *dp, &lv = *(dp=new (buf) ee47000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee47000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(16,12), "ee47000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(16,12), "ee47000");
+ check_base_class_offset(lv, (cc000*)(dd7000*), ABISELECT(16,12), "ee47000");
+ check_base_class_offset(lv, (dd7000*), 0, "ee47000");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47000.e");
+ test_class_info(&lv, &cd_ee47000);
+ dp->~ee47000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47000(Test_ee47000, "ee47000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee47000C1Ev();
+extern void _ZN7ee47000D1Ev();
+Name_Map name_map_ee47000[] = {
+ NSPAIR(_ZN7ee47000C1Ev),
+ NSPAIR(_ZN7ee47000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd7000;
+extern VTBL_ENTRY _ZTI6dd7000[];
+extern VTBL_ENTRY _ZTV6dd7000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7000[];
+static Base_Class bases_ee47000[] = {
+ // 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, 0},
+ {&cd_bb00, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7000, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee47000[];
+extern void _ZN7ee470003barEv();
+extern void _ZN6dd70003fooEv();
+static VTBL_ENTRY vtc_ee47000[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47000[0]),
+ (VTBL_ENTRY)&_ZN7ee470003barEv,
+ (VTBL_ENTRY)&_ZN6dd70003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee47000[];
+extern void _ZN6dd70003barEv();
+extern void _ZN6dd70003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7000__7ee47000[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7000[0]),
+ (VTBL_ENTRY)&_ZN6dd70003barEv,
+ (VTBL_ENTRY)&_ZN6dd70003fooEv,
+};
+static VTT_ENTRY vtt_ee47000[] = {
+ {&(_ZTV7ee47000[3]), 3,5},
+ {&(_tg__ZTV6dd7000__7ee47000[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee47000[];
+extern VTBL_ENTRY _ZTV7ee47000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47000[];
+Class_Descriptor cd_ee47000 = { "ee47000", // class name
+ bases_ee47000, 4,
+ &(vtc_ee47000[0]), // expected_vtbl_contents
+ &(vtt_ee47000[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee47000),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47000),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47000),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 ee57000 : virtual dd7000 {
+ int e;
+ virtual void bar(); // _ZN7ee570003barEv
+ ~ee57000(); // tgen
+ ee57000(); // tgen
+};
+//SIG(1 ee57000) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57000 ::bar(){vfunc_called(this, "_ZN7ee570003barEv");}
+ee57000 ::~ee57000(){ note_dtor("ee57000", this);} // tgen
+ee57000 ::ee57000(){ note_ctor("ee57000", this);} // tgen
+
+static void Test_ee57000()
+{
+ extern Class_Descriptor cd_ee57000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee57000, buf);
+ ee57000 *dp, &lv = *(dp=new (buf) ee57000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee57000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(28,16), "ee57000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(28,16), "ee57000");
+ check_base_class_offset(lv, (cc000*)(dd7000*), ABISELECT(28,16), "ee57000");
+ check_base_class_offset(lv, (dd7000*), ABISELECT(16,8), "ee57000");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57000.e");
+ test_class_info(&lv, &cd_ee57000);
+ dp->~ee57000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57000(Test_ee57000, "ee57000", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee57000C1Ev();
+extern void _ZN7ee57000D1Ev();
+Name_Map name_map_ee57000[] = {
+ NSPAIR(_ZN7ee57000C1Ev),
+ NSPAIR(_ZN7ee57000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd7000;
+extern VTBL_ENTRY _ZTI6dd7000[];
+extern VTBL_ENTRY _ZTV6dd7000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7000[];
+static Base_Class bases_ee57000[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7000, 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
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee57000[];
+extern void _ZN7ee570003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee570003barEv,_ZTv0_n16_N7ee570003barEv)();
+extern void ABISELECT(_ZThn16_N7ee570003barEv,_ZThn8_N7ee570003barEv)() __attribute__((weak));
+extern void _ZN6dd70003fooEv();
+static VTBL_ENTRY vtc_ee57000[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57000[0]),
+ (VTBL_ENTRY)&_ZN7ee570003barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57000[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee570003barEv,_ZTv0_n16_N7ee570003barEv),
+ (VTBL_ENTRY)&_ZN6dd70003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee57000[];
+extern void _ZN6dd70003barEv();
+extern void _ZN6dd70003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7000__7ee57000[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7000[0]),
+ (VTBL_ENTRY)&_ZN6dd70003barEv,
+ (VTBL_ENTRY)&_ZN6dd70003fooEv,
+};
+static VTT_ENTRY vtt_ee57000[] = {
+ {&(_ZTV7ee57000[4]), 4,12},
+ {&(_ZTV7ee57000[10]), 10,12},
+ {&(_tg__ZTV6dd7000__7ee57000[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee57000[];
+extern VTBL_ENTRY _ZTV7ee57000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57000[];
+static VTBL_ENTRY alt_thunk_names13[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee570003barEv,_ZTv0_n16_N7ee570003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee570003barEv,_ZThn8_N7ee570003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57000 = { "ee57000", // class name
+ bases_ee57000, 4,
+ &(vtc_ee57000[0]), // expected_vtbl_contents
+ &(vtt_ee57000[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee57000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57000),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57000),3, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names13,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67000 : dd7000 {
+ int e;
+ virtual void foo(); // _ZN7ee670003fooEv
+ virtual void bar(); // _ZN7ee670003barEv
+ ~ee67000(); // tgen
+ ee67000(); // tgen
+};
+//SIG(1 ee67000) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67000 ::foo(){vfunc_called(this, "_ZN7ee670003fooEv");}
+void ee67000 ::bar(){vfunc_called(this, "_ZN7ee670003barEv");}
+ee67000 ::~ee67000(){ note_dtor("ee67000", this);} // tgen
+ee67000 ::ee67000(){ note_ctor("ee67000", this);} // tgen
+
+static void Test_ee67000()
+{
+ extern Class_Descriptor cd_ee67000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee67000, buf);
+ ee67000 *dp, &lv = *(dp=new (buf) ee67000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee67000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(16,12), "ee67000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(16,12), "ee67000");
+ check_base_class_offset(lv, (cc000*)(dd7000*), ABISELECT(16,12), "ee67000");
+ check_base_class_offset(lv, (dd7000*), 0, "ee67000");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67000.e");
+ test_class_info(&lv, &cd_ee67000);
+ dp->~ee67000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67000(Test_ee67000, "ee67000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee67000C1Ev();
+extern void _ZN7ee67000D1Ev();
+Name_Map name_map_ee67000[] = {
+ NSPAIR(_ZN7ee67000C1Ev),
+ NSPAIR(_ZN7ee67000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd7000;
+extern VTBL_ENTRY _ZTI6dd7000[];
+extern VTBL_ENTRY _ZTV6dd7000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7000[];
+static Base_Class bases_ee67000[] = {
+ // 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, 0},
+ {&cd_bb00, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7000, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee67000[];
+extern void _ZN7ee670003barEv();
+extern void _ZN7ee670003fooEv();
+static VTBL_ENTRY vtc_ee67000[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67000[0]),
+ (VTBL_ENTRY)&_ZN7ee670003barEv,
+ (VTBL_ENTRY)&_ZN7ee670003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee67000[];
+extern void _ZN6dd70003barEv();
+extern void _ZN6dd70003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7000__7ee67000[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7000[0]),
+ (VTBL_ENTRY)&_ZN6dd70003barEv,
+ (VTBL_ENTRY)&_ZN6dd70003fooEv,
+};
+static VTT_ENTRY vtt_ee67000[] = {
+ {&(_ZTV7ee67000[3]), 3,5},
+ {&(_tg__ZTV6dd7000__7ee67000[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee67000[];
+extern VTBL_ENTRY _ZTV7ee67000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67000[];
+Class_Descriptor cd_ee67000 = { "ee67000", // class name
+ bases_ee67000, 4,
+ &(vtc_ee67000[0]), // expected_vtbl_contents
+ &(vtt_ee67000[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee67000),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67000),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67000),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 ee77000 : virtual dd7000 {
+ int e;
+ virtual void foo(); // _ZN7ee770003fooEv
+ virtual void bar(); // _ZN7ee770003barEv
+ ~ee77000(); // tgen
+ ee77000(); // tgen
+};
+//SIG(1 ee77000) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77000 ::foo(){vfunc_called(this, "_ZN7ee770003fooEv");}
+void ee77000 ::bar(){vfunc_called(this, "_ZN7ee770003barEv");}
+ee77000 ::~ee77000(){ note_dtor("ee77000", this);} // tgen
+ee77000 ::ee77000(){ note_ctor("ee77000", this);} // tgen
+
+static void Test_ee77000()
+{
+ extern Class_Descriptor cd_ee77000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee77000, buf);
+ ee77000 *dp, &lv = *(dp=new (buf) ee77000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee77000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(28,16), "ee77000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(28,16), "ee77000");
+ check_base_class_offset(lv, (cc000*)(dd7000*), ABISELECT(28,16), "ee77000");
+ check_base_class_offset(lv, (dd7000*), ABISELECT(16,8), "ee77000");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77000.e");
+ test_class_info(&lv, &cd_ee77000);
+ dp->~ee77000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77000(Test_ee77000, "ee77000", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee77000C1Ev();
+extern void _ZN7ee77000D1Ev();
+Name_Map name_map_ee77000[] = {
+ NSPAIR(_ZN7ee77000C1Ev),
+ NSPAIR(_ZN7ee77000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd7000;
+extern VTBL_ENTRY _ZTI6dd7000[];
+extern VTBL_ENTRY _ZTV6dd7000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7000[];
+static Base_Class bases_ee77000[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7000, 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
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee77000[];
+extern void _ZN7ee770003fooEv();
+extern void _ZN7ee770003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee770003barEv,_ZTv0_n16_N7ee770003barEv)();
+extern void ABISELECT(_ZThn16_N7ee770003barEv,_ZThn8_N7ee770003barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee770003fooEv,_ZTv0_n20_N7ee770003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee770003fooEv,_ZThn8_N7ee770003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77000[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77000[0]),
+ (VTBL_ENTRY)&_ZN7ee770003fooEv,
+ (VTBL_ENTRY)&_ZN7ee770003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77000[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee770003barEv,_ZTv0_n16_N7ee770003barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee770003fooEv,_ZTv0_n20_N7ee770003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee77000[];
+extern void _ZN6dd70003barEv();
+extern void _ZN6dd70003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7000__7ee77000[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7000[0]),
+ (VTBL_ENTRY)&_ZN6dd70003barEv,
+ (VTBL_ENTRY)&_ZN6dd70003fooEv,
+};
+static VTT_ENTRY vtt_ee77000[] = {
+ {&(_ZTV7ee77000[4]), 4,13},
+ {&(_ZTV7ee77000[11]), 11,13},
+ {&(_tg__ZTV6dd7000__7ee77000[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee77000[];
+extern VTBL_ENTRY _ZTV7ee77000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77000[];
+static VTBL_ENTRY alt_thunk_names14[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee770003fooEv,_ZTv0_n20_N7ee770003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee770003fooEv,_ZThn8_N7ee770003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee770003barEv,_ZTv0_n16_N7ee770003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee770003barEv,_ZThn8_N7ee770003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77000 = { "ee77000", // class name
+ bases_ee77000, 4,
+ &(vtc_ee77000[0]), // expected_vtbl_contents
+ &(vtt_ee77000[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee77000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77000),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77000),3, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names14,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc100 : virtual bb00 {
+ int c;
+ ~cc100(); // tgen
+ cc100(); // tgen
+};
+//SIG(-1 cc100) C1{ VBC2{ BC3{ Fi} Fi} Fi}
+
+
+cc100 ::~cc100(){ note_dtor("cc100", this);} // tgen
+cc100 ::cc100(){ note_ctor("cc100", this);} // tgen
+
+static void Test_cc100()
+{
+ extern Class_Descriptor cd_cc100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,5)];
+ init_test(&cd_cc100, buf);
+ cc100 *dp, &lv = *(dp=new (buf) cc100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,16), "sizeof(cc100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(12,8), "cc100");
+ check_base_class_offset(lv, (bb00*), ABISELECT(12,8), "cc100");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc100.c");
+ test_class_info(&lv, &cd_cc100);
+ dp->~cc100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc100(Test_cc100, "cc100", ABISELECT(24,16));
+
+#else // __cplusplus
+
+extern void _ZN5cc100C1Ev();
+extern void _ZN5cc100D1Ev();
+Name_Map name_map_cc100[] = {
+ NSPAIR(_ZN5cc100C1Ev),
+ NSPAIR(_ZN5cc100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+static Base_Class bases_cc100[] = {
+ // 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
+ 0, 0},
+ {&cd_bb00, 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 _ZTI5cc100[];
+static VTBL_ENTRY vtc_cc100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+extern VTBL_ENTRY _ZTV5cc100[];
+static VTT_ENTRY vtt_cc100[] = {
+ {&(_ZTV5cc100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+Class_Descriptor cd_cc100 = { "cc100", // class name
+ bases_cc100, 2,
+ &(vtc_cc100[0]), // expected_vtbl_contents
+ &(vtt_cc100[0]), // expected_vtt_contents
+ ABISELECT(24,16), // object size
+ NSPAIRA(_ZTI5cc100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV5cc100),3, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5cc100),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 dd0100 : cc100 {
+ int d;
+ ~dd0100(); // tgen
+ dd0100(); // tgen
+};
+//SIG(-1 dd0100) C1{ BC2{ VBC3{ BC4{ Fi} Fi} Fi} Fi}
+
+
+dd0100 ::~dd0100(){ note_dtor("dd0100", this);} // tgen
+dd0100 ::dd0100(){ note_ctor("dd0100", this);} // tgen
+
+static void Test_dd0100()
+{
+ extern Class_Descriptor cd_dd0100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd0100, buf);
+ dd0100 *dp, &lv = *(dp=new (buf) dd0100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd0100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(16,12), "dd0100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(16,12), "dd0100");
+ check_base_class_offset(lv, (cc100*), 0, "dd0100");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd0100.d");
+ test_class_info(&lv, &cd_dd0100);
+ dp->~dd0100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0100(Test_dd0100, "dd0100", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd0100C1Ev();
+extern void _ZN6dd0100D1Ev();
+Name_Map name_map_dd0100[] = {
+ NSPAIR(_ZN6dd0100C1Ev),
+ NSPAIR(_ZN6dd0100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+static Base_Class bases_dd0100[] = {
+ // 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, 0},
+ {&cd_bb00, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd0100[];
+static VTBL_ENTRY vtc_dd0100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0100[0]),
+};
+extern VTBL_ENTRY _ZTV6dd0100[];
+static VTBL_ENTRY _tg__ZTV5cc100__6dd0100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_dd0100[] = {
+ {&(_ZTV6dd0100[3]), 3,3},
+ {&(_tg__ZTV5cc100__6dd0100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI6dd0100[];
+extern VTBL_ENTRY _ZTV6dd0100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0100[];
+Class_Descriptor cd_dd0100 = { "dd0100", // class name
+ bases_dd0100, 3,
+ &(vtc_dd0100[0]), // expected_vtbl_contents
+ &(vtt_dd0100[0]), // expected_vtt_contents
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd0100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0100),3, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd0100),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 ee00100 : dd0100 {
+ int e;
+ ~ee00100(); // tgen
+ ee00100(); // tgen
+};
+//SIG(1 ee00100) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} Fi} Fi} Fi}
+
+
+ee00100 ::~ee00100(){ note_dtor("ee00100", this);} // tgen
+ee00100 ::ee00100(){ note_ctor("ee00100", this);} // tgen
+
+static void Test_ee00100()
+{
+ extern Class_Descriptor cd_ee00100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee00100, buf);
+ ee00100 *dp, &lv = *(dp=new (buf) ee00100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee00100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee00100");
+ check_base_class_offset(lv, (bb00*)(cc100*)(dd0100*), ABISELECT(20,16), "ee00100");
+ check_base_class_offset(lv, (cc100*)(dd0100*), 0, "ee00100");
+ check_base_class_offset(lv, (dd0100*), 0, "ee00100");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee00100.e");
+ test_class_info(&lv, &cd_ee00100);
+ dp->~ee00100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00100(Test_ee00100, "ee00100", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee00100C1Ev();
+extern void _ZN7ee00100D1Ev();
+Name_Map name_map_ee00100[] = {
+ NSPAIR(_ZN7ee00100C1Ev),
+ NSPAIR(_ZN7ee00100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd0100;
+extern VTBL_ENTRY _ZTI6dd0100[];
+extern VTBL_ENTRY _ZTV6dd0100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0100[];
+static Base_Class bases_ee00100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, 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
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee00100[];
+static VTBL_ENTRY vtc_ee00100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee00100[];
+static VTBL_ENTRY _tg__ZTV6dd0100__7ee00100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1006dd0100__7ee00100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee00100[] = {
+ {&(_ZTV7ee00100[3]), 3,3},
+ {&(_tg__ZTV6dd0100__7ee00100[3]), 3,3},
+ {&(_tg__ZTV5cc1006dd0100__7ee00100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee00100[];
+extern VTBL_ENTRY _ZTV7ee00100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee00100[];
+Class_Descriptor cd_ee00100 = { "ee00100", // class name
+ bases_ee00100, 4,
+ &(vtc_ee00100[0]), // expected_vtbl_contents
+ &(vtt_ee00100[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee00100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00100),3, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee00100),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 ee10100 : virtual dd0100 {
+ int e;
+ ~ee10100(); // tgen
+ ee10100(); // tgen
+};
+//SIG(1 ee10100) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} Fi} Fi} Fi}
+
+
+ee10100 ::~ee10100(){ note_dtor("ee10100", this);} // tgen
+ee10100 ::ee10100(){ note_ctor("ee10100", this);} // tgen
+
+static void Test_ee10100()
+{
+ extern Class_Descriptor cd_ee10100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee10100, buf);
+ ee10100 *dp, &lv = *(dp=new (buf) ee10100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee10100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee10100");
+ check_base_class_offset(lv, (bb00*)(cc100*)(dd0100*), ABISELECT(32,20), "ee10100");
+ check_base_class_offset(lv, (cc100*)(dd0100*), ABISELECT(16,8), "ee10100");
+ check_base_class_offset(lv, (dd0100*), ABISELECT(16,8), "ee10100");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10100.e");
+ test_class_info(&lv, &cd_ee10100);
+ dp->~ee10100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10100(Test_ee10100, "ee10100", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee10100C1Ev();
+extern void _ZN7ee10100D1Ev();
+Name_Map name_map_ee10100[] = {
+ NSPAIR(_ZN7ee10100C1Ev),
+ NSPAIR(_ZN7ee10100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd0100;
+extern VTBL_ENTRY _ZTI6dd0100[];
+extern VTBL_ENTRY _ZTV6dd0100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0100[];
+static Base_Class bases_ee10100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(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
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0100, 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
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee10100[];
+static VTBL_ENTRY vtc_ee10100[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10100[0]),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee10100[];
+static VTBL_ENTRY _tg__ZTV6dd0100__7ee10100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1006dd0100__7ee10100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee10100[] = {
+ {&(_ZTV7ee10100[4]), 4,7},
+ {&(_ZTV7ee10100[7]), 7,7},
+ {&(_tg__ZTV6dd0100__7ee10100[3]), 3,3},
+ {&(_tg__ZTV5cc1006dd0100__7ee10100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee10100[];
+extern VTBL_ENTRY _ZTV7ee10100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10100[];
+Class_Descriptor cd_ee10100 = { "ee10100", // class name
+ bases_ee10100, 4,
+ &(vtc_ee10100[0]), // expected_vtbl_contents
+ &(vtt_ee10100[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee10100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10100),7, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10100),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 ee20100 : dd0100 {
+ int e;
+ virtual void foo(); // _ZN7ee201003fooEv
+ ~ee20100(); // tgen
+ ee20100(); // tgen
+};
+//SIG(1 ee20100) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} Fi} Fi} v1 Fi}
+
+
+void ee20100 ::foo(){vfunc_called(this, "_ZN7ee201003fooEv");}
+ee20100 ::~ee20100(){ note_dtor("ee20100", this);} // tgen
+ee20100 ::ee20100(){ note_ctor("ee20100", this);} // tgen
+
+static void Test_ee20100()
+{
+ extern Class_Descriptor cd_ee20100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee20100, buf);
+ ee20100 *dp, &lv = *(dp=new (buf) ee20100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee20100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee20100");
+ check_base_class_offset(lv, (bb00*)(cc100*)(dd0100*), ABISELECT(20,16), "ee20100");
+ check_base_class_offset(lv, (cc100*)(dd0100*), 0, "ee20100");
+ check_base_class_offset(lv, (dd0100*), 0, "ee20100");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee20100.e");
+ test_class_info(&lv, &cd_ee20100);
+ dp->~ee20100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20100(Test_ee20100, "ee20100", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee20100C1Ev();
+extern void _ZN7ee20100D1Ev();
+Name_Map name_map_ee20100[] = {
+ NSPAIR(_ZN7ee20100C1Ev),
+ NSPAIR(_ZN7ee20100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd0100;
+extern VTBL_ENTRY _ZTI6dd0100[];
+extern VTBL_ENTRY _ZTV6dd0100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0100[];
+static Base_Class bases_ee20100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, 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
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee20100[];
+extern void _ZN7ee201003fooEv();
+static VTBL_ENTRY vtc_ee20100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20100[0]),
+ (VTBL_ENTRY)&_ZN7ee201003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee20100[];
+static VTBL_ENTRY _tg__ZTV6dd0100__7ee20100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1006dd0100__7ee20100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee20100[] = {
+ {&(_ZTV7ee20100[3]), 3,4},
+ {&(_tg__ZTV6dd0100__7ee20100[3]), 3,3},
+ {&(_tg__ZTV5cc1006dd0100__7ee20100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee20100[];
+extern VTBL_ENTRY _ZTV7ee20100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee20100[];
+Class_Descriptor cd_ee20100 = { "ee20100", // class name
+ bases_ee20100, 4,
+ &(vtc_ee20100[0]), // expected_vtbl_contents
+ &(vtt_ee20100[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee20100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20100),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee20100),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 ee30100 : virtual dd0100 {
+ int e;
+ virtual void foo(); // _ZN7ee301003fooEv
+ ~ee30100(); // tgen
+ ee30100(); // tgen
+};
+//SIG(1 ee30100) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} Fi} Fi} v1 Fi}
+
+
+void ee30100 ::foo(){vfunc_called(this, "_ZN7ee301003fooEv");}
+ee30100 ::~ee30100(){ note_dtor("ee30100", this);} // tgen
+ee30100 ::ee30100(){ note_ctor("ee30100", this);} // tgen
+
+static void Test_ee30100()
+{
+ extern Class_Descriptor cd_ee30100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee30100, buf);
+ ee30100 *dp, &lv = *(dp=new (buf) ee30100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee30100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee30100");
+ check_base_class_offset(lv, (bb00*)(cc100*)(dd0100*), ABISELECT(32,20), "ee30100");
+ check_base_class_offset(lv, (cc100*)(dd0100*), ABISELECT(16,8), "ee30100");
+ check_base_class_offset(lv, (dd0100*), ABISELECT(16,8), "ee30100");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30100.e");
+ test_class_info(&lv, &cd_ee30100);
+ dp->~ee30100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30100(Test_ee30100, "ee30100", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee30100C1Ev();
+extern void _ZN7ee30100D1Ev();
+Name_Map name_map_ee30100[] = {
+ NSPAIR(_ZN7ee30100C1Ev),
+ NSPAIR(_ZN7ee30100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd0100;
+extern VTBL_ENTRY _ZTI6dd0100[];
+extern VTBL_ENTRY _ZTV6dd0100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0100[];
+static Base_Class bases_ee30100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(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
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0100, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee30100[];
+extern void _ZN7ee301003fooEv();
+static VTBL_ENTRY vtc_ee30100[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30100[0]),
+ (VTBL_ENTRY)&_ZN7ee301003fooEv,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee30100[];
+static VTBL_ENTRY _tg__ZTV6dd0100__7ee30100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1006dd0100__7ee30100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee30100[] = {
+ {&(_ZTV7ee30100[4]), 4,8},
+ {&(_ZTV7ee30100[8]), 8,8},
+ {&(_tg__ZTV6dd0100__7ee30100[3]), 3,3},
+ {&(_tg__ZTV5cc1006dd0100__7ee30100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee30100[];
+extern VTBL_ENTRY _ZTV7ee30100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30100[];
+Class_Descriptor cd_ee30100 = { "ee30100", // class name
+ bases_ee30100, 4,
+ &(vtc_ee30100[0]), // expected_vtbl_contents
+ &(vtt_ee30100[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee30100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30100),8, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30100),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 ee40100 : dd0100 {
+ int e;
+ virtual void bar(); // _ZN7ee401003barEv
+ ~ee40100(); // tgen
+ ee40100(); // tgen
+};
+//SIG(1 ee40100) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} Fi} Fi} v1 Fi}
+
+
+void ee40100 ::bar(){vfunc_called(this, "_ZN7ee401003barEv");}
+ee40100 ::~ee40100(){ note_dtor("ee40100", this);} // tgen
+ee40100 ::ee40100(){ note_ctor("ee40100", this);} // tgen
+
+static void Test_ee40100()
+{
+ extern Class_Descriptor cd_ee40100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee40100, buf);
+ ee40100 *dp, &lv = *(dp=new (buf) ee40100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee40100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee40100");
+ check_base_class_offset(lv, (bb00*)(cc100*)(dd0100*), ABISELECT(20,16), "ee40100");
+ check_base_class_offset(lv, (cc100*)(dd0100*), 0, "ee40100");
+ check_base_class_offset(lv, (dd0100*), 0, "ee40100");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee40100.e");
+ test_class_info(&lv, &cd_ee40100);
+ dp->~ee40100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40100(Test_ee40100, "ee40100", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee40100C1Ev();
+extern void _ZN7ee40100D1Ev();
+Name_Map name_map_ee40100[] = {
+ NSPAIR(_ZN7ee40100C1Ev),
+ NSPAIR(_ZN7ee40100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd0100;
+extern VTBL_ENTRY _ZTI6dd0100[];
+extern VTBL_ENTRY _ZTV6dd0100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0100[];
+static Base_Class bases_ee40100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, 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
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee40100[];
+extern void _ZN7ee401003barEv();
+static VTBL_ENTRY vtc_ee40100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40100[0]),
+ (VTBL_ENTRY)&_ZN7ee401003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee40100[];
+static VTBL_ENTRY _tg__ZTV6dd0100__7ee40100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1006dd0100__7ee40100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee40100[] = {
+ {&(_ZTV7ee40100[3]), 3,4},
+ {&(_tg__ZTV6dd0100__7ee40100[3]), 3,3},
+ {&(_tg__ZTV5cc1006dd0100__7ee40100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee40100[];
+extern VTBL_ENTRY _ZTV7ee40100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee40100[];
+Class_Descriptor cd_ee40100 = { "ee40100", // class name
+ bases_ee40100, 4,
+ &(vtc_ee40100[0]), // expected_vtbl_contents
+ &(vtt_ee40100[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee40100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40100),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee40100),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 ee50100 : virtual dd0100 {
+ int e;
+ virtual void bar(); // _ZN7ee501003barEv
+ ~ee50100(); // tgen
+ ee50100(); // tgen
+};
+//SIG(1 ee50100) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} Fi} Fi} v1 Fi}
+
+
+void ee50100 ::bar(){vfunc_called(this, "_ZN7ee501003barEv");}
+ee50100 ::~ee50100(){ note_dtor("ee50100", this);} // tgen
+ee50100 ::ee50100(){ note_ctor("ee50100", this);} // tgen
+
+static void Test_ee50100()
+{
+ extern Class_Descriptor cd_ee50100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee50100, buf);
+ ee50100 *dp, &lv = *(dp=new (buf) ee50100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee50100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee50100");
+ check_base_class_offset(lv, (bb00*)(cc100*)(dd0100*), ABISELECT(32,20), "ee50100");
+ check_base_class_offset(lv, (cc100*)(dd0100*), ABISELECT(16,8), "ee50100");
+ check_base_class_offset(lv, (dd0100*), ABISELECT(16,8), "ee50100");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50100.e");
+ test_class_info(&lv, &cd_ee50100);
+ dp->~ee50100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50100(Test_ee50100, "ee50100", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee50100C1Ev();
+extern void _ZN7ee50100D1Ev();
+Name_Map name_map_ee50100[] = {
+ NSPAIR(_ZN7ee50100C1Ev),
+ NSPAIR(_ZN7ee50100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd0100;
+extern VTBL_ENTRY _ZTI6dd0100[];
+extern VTBL_ENTRY _ZTV6dd0100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0100[];
+static Base_Class bases_ee50100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(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
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0100, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee50100[];
+extern void _ZN7ee501003barEv();
+static VTBL_ENTRY vtc_ee50100[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50100[0]),
+ (VTBL_ENTRY)&_ZN7ee501003barEv,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee50100[];
+static VTBL_ENTRY _tg__ZTV6dd0100__7ee50100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1006dd0100__7ee50100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee50100[] = {
+ {&(_ZTV7ee50100[4]), 4,8},
+ {&(_ZTV7ee50100[8]), 8,8},
+ {&(_tg__ZTV6dd0100__7ee50100[3]), 3,3},
+ {&(_tg__ZTV5cc1006dd0100__7ee50100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee50100[];
+extern VTBL_ENTRY _ZTV7ee50100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50100[];
+Class_Descriptor cd_ee50100 = { "ee50100", // class name
+ bases_ee50100, 4,
+ &(vtc_ee50100[0]), // expected_vtbl_contents
+ &(vtt_ee50100[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee50100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50100),8, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50100),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 ee60100 : dd0100 {
+ int e;
+ virtual void foo(); // _ZN7ee601003fooEv
+ virtual void bar(); // _ZN7ee601003barEv
+ ~ee60100(); // tgen
+ ee60100(); // tgen
+};
+//SIG(1 ee60100) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee60100 ::foo(){vfunc_called(this, "_ZN7ee601003fooEv");}
+void ee60100 ::bar(){vfunc_called(this, "_ZN7ee601003barEv");}
+ee60100 ::~ee60100(){ note_dtor("ee60100", this);} // tgen
+ee60100 ::ee60100(){ note_ctor("ee60100", this);} // tgen
+
+static void Test_ee60100()
+{
+ extern Class_Descriptor cd_ee60100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee60100, buf);
+ ee60100 *dp, &lv = *(dp=new (buf) ee60100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee60100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee60100");
+ check_base_class_offset(lv, (bb00*)(cc100*)(dd0100*), ABISELECT(20,16), "ee60100");
+ check_base_class_offset(lv, (cc100*)(dd0100*), 0, "ee60100");
+ check_base_class_offset(lv, (dd0100*), 0, "ee60100");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee60100.e");
+ test_class_info(&lv, &cd_ee60100);
+ dp->~ee60100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60100(Test_ee60100, "ee60100", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee60100C1Ev();
+extern void _ZN7ee60100D1Ev();
+Name_Map name_map_ee60100[] = {
+ NSPAIR(_ZN7ee60100C1Ev),
+ NSPAIR(_ZN7ee60100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd0100;
+extern VTBL_ENTRY _ZTI6dd0100[];
+extern VTBL_ENTRY _ZTV6dd0100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0100[];
+static Base_Class bases_ee60100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, 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
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee60100[];
+extern void _ZN7ee601003fooEv();
+extern void _ZN7ee601003barEv();
+static VTBL_ENTRY vtc_ee60100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60100[0]),
+ (VTBL_ENTRY)&_ZN7ee601003fooEv,
+ (VTBL_ENTRY)&_ZN7ee601003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee60100[];
+static VTBL_ENTRY _tg__ZTV6dd0100__7ee60100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1006dd0100__7ee60100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee60100[] = {
+ {&(_ZTV7ee60100[3]), 3,5},
+ {&(_tg__ZTV6dd0100__7ee60100[3]), 3,3},
+ {&(_tg__ZTV5cc1006dd0100__7ee60100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee60100[];
+extern VTBL_ENTRY _ZTV7ee60100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee60100[];
+Class_Descriptor cd_ee60100 = { "ee60100", // class name
+ bases_ee60100, 4,
+ &(vtc_ee60100[0]), // expected_vtbl_contents
+ &(vtt_ee60100[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee60100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60100),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee60100),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 ee70100 : virtual dd0100 {
+ int e;
+ virtual void foo(); // _ZN7ee701003fooEv
+ virtual void bar(); // _ZN7ee701003barEv
+ ~ee70100(); // tgen
+ ee70100(); // tgen
+};
+//SIG(1 ee70100) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee70100 ::foo(){vfunc_called(this, "_ZN7ee701003fooEv");}
+void ee70100 ::bar(){vfunc_called(this, "_ZN7ee701003barEv");}
+ee70100 ::~ee70100(){ note_dtor("ee70100", this);} // tgen
+ee70100 ::ee70100(){ note_ctor("ee70100", this);} // tgen
+
+static void Test_ee70100()
+{
+ extern Class_Descriptor cd_ee70100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee70100, buf);
+ ee70100 *dp, &lv = *(dp=new (buf) ee70100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee70100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee70100");
+ check_base_class_offset(lv, (bb00*)(cc100*)(dd0100*), ABISELECT(32,20), "ee70100");
+ check_base_class_offset(lv, (cc100*)(dd0100*), ABISELECT(16,8), "ee70100");
+ check_base_class_offset(lv, (dd0100*), ABISELECT(16,8), "ee70100");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70100.e");
+ test_class_info(&lv, &cd_ee70100);
+ dp->~ee70100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70100(Test_ee70100, "ee70100", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee70100C1Ev();
+extern void _ZN7ee70100D1Ev();
+Name_Map name_map_ee70100[] = {
+ NSPAIR(_ZN7ee70100C1Ev),
+ NSPAIR(_ZN7ee70100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd0100;
+extern VTBL_ENTRY _ZTI6dd0100[];
+extern VTBL_ENTRY _ZTV6dd0100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0100[];
+static Base_Class bases_ee70100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(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
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0100, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee70100[];
+extern void _ZN7ee701003fooEv();
+extern void _ZN7ee701003barEv();
+static VTBL_ENTRY vtc_ee70100[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70100[0]),
+ (VTBL_ENTRY)&_ZN7ee701003fooEv,
+ (VTBL_ENTRY)&_ZN7ee701003barEv,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee70100[];
+static VTBL_ENTRY _tg__ZTV6dd0100__7ee70100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1006dd0100__7ee70100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee70100[] = {
+ {&(_ZTV7ee70100[4]), 4,9},
+ {&(_ZTV7ee70100[9]), 9,9},
+ {&(_tg__ZTV6dd0100__7ee70100[3]), 3,3},
+ {&(_tg__ZTV5cc1006dd0100__7ee70100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee70100[];
+extern VTBL_ENTRY _ZTV7ee70100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70100[];
+Class_Descriptor cd_ee70100 = { "ee70100", // class name
+ bases_ee70100, 4,
+ &(vtc_ee70100[0]), // expected_vtbl_contents
+ &(vtt_ee70100[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee70100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70100),9, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70100),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 dd1100 : virtual cc100 {
+ int d;
+ ~dd1100(); // tgen
+ dd1100(); // tgen
+};
+//SIG(-1 dd1100) C1{ VBC2{ VBC3{ BC4{ Fi} Fi} Fi} Fi}
+
+
+dd1100 ::~dd1100(){ note_dtor("dd1100", this);} // tgen
+dd1100 ::dd1100(){ note_ctor("dd1100", this);} // tgen
+
+static void Test_dd1100()
+{
+ extern Class_Descriptor cd_dd1100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd1100, buf);
+ dd1100 *dp, &lv = *(dp=new (buf) dd1100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd1100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,16), "dd1100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(28,16), "dd1100");
+ check_base_class_offset(lv, (cc100*), ABISELECT(16,8), "dd1100");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1100.d");
+ test_class_info(&lv, &cd_dd1100);
+ dp->~dd1100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1100(Test_dd1100, "dd1100", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd1100C1Ev();
+extern void _ZN6dd1100D1Ev();
+Name_Map name_map_dd1100[] = {
+ NSPAIR(_ZN6dd1100C1Ev),
+ NSPAIR(_ZN6dd1100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+static Base_Class bases_dd1100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, 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
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd1100[];
+static VTBL_ENTRY vtc_dd1100[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1100[0]),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1100[0]),
+};
+extern VTBL_ENTRY _ZTV6dd1100[];
+static VTBL_ENTRY _tg__ZTV5cc100__6dd1100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_dd1100[] = {
+ {&(_ZTV6dd1100[4]), 4,7},
+ {&(_ZTV6dd1100[7]), 7,7},
+ {&(_tg__ZTV5cc100__6dd1100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI6dd1100[];
+extern VTBL_ENTRY _ZTV6dd1100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1100[];
+Class_Descriptor cd_dd1100 = { "dd1100", // class name
+ bases_dd1100, 3,
+ &(vtc_dd1100[0]), // expected_vtbl_contents
+ &(vtt_dd1100[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd1100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1100),7, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1100),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 ee01100 : dd1100 {
+ int e;
+ ~ee01100(); // tgen
+ ee01100(); // tgen
+};
+//SIG(1 ee01100) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} Fi} Fi} Fi}
+
+
+ee01100 ::~ee01100(){ note_dtor("ee01100", this);} // tgen
+ee01100 ::ee01100(){ note_ctor("ee01100", this);} // tgen
+
+static void Test_ee01100()
+{
+ extern Class_Descriptor cd_ee01100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee01100, buf);
+ ee01100 *dp, &lv = *(dp=new (buf) ee01100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee01100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee01100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(28,20), "ee01100");
+ check_base_class_offset(lv, (cc100*)(dd1100*), ABISELECT(16,12), "ee01100");
+ check_base_class_offset(lv, (dd1100*), 0, "ee01100");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01100.e");
+ test_class_info(&lv, &cd_ee01100);
+ dp->~ee01100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01100(Test_ee01100, "ee01100", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee01100C1Ev();
+extern void _ZN7ee01100D1Ev();
+Name_Map name_map_ee01100[] = {
+ NSPAIR(_ZN7ee01100C1Ev),
+ NSPAIR(_ZN7ee01100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd1100;
+extern VTBL_ENTRY _ZTI6dd1100[];
+extern VTBL_ENTRY _ZTV6dd1100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1100[];
+static Base_Class bases_ee01100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee01100[];
+static VTBL_ENTRY vtc_ee01100[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01100[0]),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee01100[];
+static VTBL_ENTRY _tg__ZTV6dd1100__7ee01100[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__6dd1100__7ee01100[] = {
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__7ee01100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee01100[] = {
+ {&(_ZTV7ee01100[4]), 4,7},
+ {&(_tg__ZTV6dd1100__7ee01100[4]), 4,4},
+ {&(_tg__ZTV5cc100__6dd1100__7ee01100[3]), 3,3},
+ {&(_ZTV7ee01100[7]), 7,7},
+ {&(_tg__ZTV5cc100__7ee01100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee01100[];
+extern VTBL_ENTRY _ZTV7ee01100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01100[];
+Class_Descriptor cd_ee01100 = { "ee01100", // class name
+ bases_ee01100, 4,
+ &(vtc_ee01100[0]), // expected_vtbl_contents
+ &(vtt_ee01100[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee01100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01100),7, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01100),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 ee11100 : virtual dd1100 {
+ int e;
+ ~ee11100(); // tgen
+ ee11100(); // tgen
+};
+//SIG(1 ee11100) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} Fi} Fi} Fi}
+
+
+ee11100 ::~ee11100(){ note_dtor("ee11100", this);} // tgen
+ee11100 ::ee11100(){ note_ctor("ee11100", this);} // tgen
+
+static void Test_ee11100()
+{
+ extern Class_Descriptor cd_ee11100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee11100, buf);
+ ee11100 *dp, &lv = *(dp=new (buf) ee11100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee11100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee11100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(44,24), "ee11100");
+ check_base_class_offset(lv, (cc100*)(dd1100*), ABISELECT(32,16), "ee11100");
+ check_base_class_offset(lv, (dd1100*), ABISELECT(16,8), "ee11100");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11100.e");
+ test_class_info(&lv, &cd_ee11100);
+ dp->~ee11100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11100(Test_ee11100, "ee11100", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee11100C1Ev();
+extern void _ZN7ee11100D1Ev();
+Name_Map name_map_ee11100[] = {
+ NSPAIR(_ZN7ee11100C1Ev),
+ NSPAIR(_ZN7ee11100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd1100;
+extern VTBL_ENTRY _ZTI6dd1100[];
+extern VTBL_ENTRY _ZTV6dd1100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1100[];
+static Base_Class bases_ee11100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, 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
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1100, 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 _ZTI7ee11100[];
+static VTBL_ENTRY vtc_ee11100[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11100[0]),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11100[0]),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee11100[];
+static VTBL_ENTRY _tg__ZTV6dd1100__7ee11100[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__6dd1100__7ee11100[] = {
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__7ee11100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee11100[] = {
+ {&(_ZTV7ee11100[5]), 5,12},
+ {&(_ZTV7ee11100[9]), 9,12},
+ {&(_ZTV7ee11100[12]), 12,12},
+ {&(_tg__ZTV6dd1100__7ee11100[4]), 4,4},
+ {&(_tg__ZTV5cc100__6dd1100__7ee11100[3]), 3,3},
+ {&(_tg__ZTV5cc100__7ee11100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee11100[];
+extern VTBL_ENTRY _ZTV7ee11100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11100[];
+Class_Descriptor cd_ee11100 = { "ee11100", // class name
+ bases_ee11100, 4,
+ &(vtc_ee11100[0]), // expected_vtbl_contents
+ &(vtt_ee11100[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee11100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11100),12, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11100),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 ee21100 : dd1100 {
+ int e;
+ virtual void foo(); // _ZN7ee211003fooEv
+ ~ee21100(); // tgen
+ ee21100(); // tgen
+};
+//SIG(1 ee21100) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} Fi} Fi} v1 Fi}
+
+
+void ee21100 ::foo(){vfunc_called(this, "_ZN7ee211003fooEv");}
+ee21100 ::~ee21100(){ note_dtor("ee21100", this);} // tgen
+ee21100 ::ee21100(){ note_ctor("ee21100", this);} // tgen
+
+static void Test_ee21100()
+{
+ extern Class_Descriptor cd_ee21100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee21100, buf);
+ ee21100 *dp, &lv = *(dp=new (buf) ee21100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee21100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee21100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(28,20), "ee21100");
+ check_base_class_offset(lv, (cc100*)(dd1100*), ABISELECT(16,12), "ee21100");
+ check_base_class_offset(lv, (dd1100*), 0, "ee21100");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21100.e");
+ test_class_info(&lv, &cd_ee21100);
+ dp->~ee21100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21100(Test_ee21100, "ee21100", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee21100C1Ev();
+extern void _ZN7ee21100D1Ev();
+Name_Map name_map_ee21100[] = {
+ NSPAIR(_ZN7ee21100C1Ev),
+ NSPAIR(_ZN7ee21100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd1100;
+extern VTBL_ENTRY _ZTI6dd1100[];
+extern VTBL_ENTRY _ZTV6dd1100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1100[];
+static Base_Class bases_ee21100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee21100[];
+extern void _ZN7ee211003fooEv();
+static VTBL_ENTRY vtc_ee21100[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21100[0]),
+ (VTBL_ENTRY)&_ZN7ee211003fooEv,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee21100[];
+static VTBL_ENTRY _tg__ZTV6dd1100__7ee21100[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__6dd1100__7ee21100[] = {
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__7ee21100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee21100[] = {
+ {&(_ZTV7ee21100[4]), 4,8},
+ {&(_tg__ZTV6dd1100__7ee21100[4]), 4,4},
+ {&(_tg__ZTV5cc100__6dd1100__7ee21100[3]), 3,3},
+ {&(_ZTV7ee21100[8]), 8,8},
+ {&(_tg__ZTV5cc100__7ee21100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee21100[];
+extern VTBL_ENTRY _ZTV7ee21100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21100[];
+Class_Descriptor cd_ee21100 = { "ee21100", // class name
+ bases_ee21100, 4,
+ &(vtc_ee21100[0]), // expected_vtbl_contents
+ &(vtt_ee21100[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee21100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21100),8, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21100),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 ee31100 : virtual dd1100 {
+ int e;
+ virtual void foo(); // _ZN7ee311003fooEv
+ ~ee31100(); // tgen
+ ee31100(); // tgen
+};
+//SIG(1 ee31100) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} Fi} Fi} v1 Fi}
+
+
+void ee31100 ::foo(){vfunc_called(this, "_ZN7ee311003fooEv");}
+ee31100 ::~ee31100(){ note_dtor("ee31100", this);} // tgen
+ee31100 ::ee31100(){ note_ctor("ee31100", this);} // tgen
+
+static void Test_ee31100()
+{
+ extern Class_Descriptor cd_ee31100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee31100, buf);
+ ee31100 *dp, &lv = *(dp=new (buf) ee31100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee31100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee31100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(44,24), "ee31100");
+ check_base_class_offset(lv, (cc100*)(dd1100*), ABISELECT(32,16), "ee31100");
+ check_base_class_offset(lv, (dd1100*), ABISELECT(16,8), "ee31100");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31100.e");
+ test_class_info(&lv, &cd_ee31100);
+ dp->~ee31100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31100(Test_ee31100, "ee31100", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee31100C1Ev();
+extern void _ZN7ee31100D1Ev();
+Name_Map name_map_ee31100[] = {
+ NSPAIR(_ZN7ee31100C1Ev),
+ NSPAIR(_ZN7ee31100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd1100;
+extern VTBL_ENTRY _ZTI6dd1100[];
+extern VTBL_ENTRY _ZTV6dd1100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1100[];
+static Base_Class bases_ee31100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, 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
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1100, 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 _ZTI7ee31100[];
+extern void _ZN7ee311003fooEv();
+static VTBL_ENTRY vtc_ee31100[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31100[0]),
+ (VTBL_ENTRY)&_ZN7ee311003fooEv,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31100[0]),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee31100[];
+static VTBL_ENTRY _tg__ZTV6dd1100__7ee31100[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__6dd1100__7ee31100[] = {
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__7ee31100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee31100[] = {
+ {&(_ZTV7ee31100[5]), 5,13},
+ {&(_ZTV7ee31100[10]), 10,13},
+ {&(_ZTV7ee31100[13]), 13,13},
+ {&(_tg__ZTV6dd1100__7ee31100[4]), 4,4},
+ {&(_tg__ZTV5cc100__6dd1100__7ee31100[3]), 3,3},
+ {&(_tg__ZTV5cc100__7ee31100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee31100[];
+extern VTBL_ENTRY _ZTV7ee31100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31100[];
+Class_Descriptor cd_ee31100 = { "ee31100", // class name
+ bases_ee31100, 4,
+ &(vtc_ee31100[0]), // expected_vtbl_contents
+ &(vtt_ee31100[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee31100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31100),13, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31100),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 ee41100 : dd1100 {
+ int e;
+ virtual void bar(); // _ZN7ee411003barEv
+ ~ee41100(); // tgen
+ ee41100(); // tgen
+};
+//SIG(1 ee41100) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} Fi} Fi} v1 Fi}
+
+
+void ee41100 ::bar(){vfunc_called(this, "_ZN7ee411003barEv");}
+ee41100 ::~ee41100(){ note_dtor("ee41100", this);} // tgen
+ee41100 ::ee41100(){ note_ctor("ee41100", this);} // tgen
+
+static void Test_ee41100()
+{
+ extern Class_Descriptor cd_ee41100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee41100, buf);
+ ee41100 *dp, &lv = *(dp=new (buf) ee41100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee41100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee41100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(28,20), "ee41100");
+ check_base_class_offset(lv, (cc100*)(dd1100*), ABISELECT(16,12), "ee41100");
+ check_base_class_offset(lv, (dd1100*), 0, "ee41100");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41100.e");
+ test_class_info(&lv, &cd_ee41100);
+ dp->~ee41100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41100(Test_ee41100, "ee41100", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee41100C1Ev();
+extern void _ZN7ee41100D1Ev();
+Name_Map name_map_ee41100[] = {
+ NSPAIR(_ZN7ee41100C1Ev),
+ NSPAIR(_ZN7ee41100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd1100;
+extern VTBL_ENTRY _ZTI6dd1100[];
+extern VTBL_ENTRY _ZTV6dd1100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1100[];
+static Base_Class bases_ee41100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee41100[];
+extern void _ZN7ee411003barEv();
+static VTBL_ENTRY vtc_ee41100[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41100[0]),
+ (VTBL_ENTRY)&_ZN7ee411003barEv,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee41100[];
+static VTBL_ENTRY _tg__ZTV6dd1100__7ee41100[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__6dd1100__7ee41100[] = {
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__7ee41100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee41100[] = {
+ {&(_ZTV7ee41100[4]), 4,8},
+ {&(_tg__ZTV6dd1100__7ee41100[4]), 4,4},
+ {&(_tg__ZTV5cc100__6dd1100__7ee41100[3]), 3,3},
+ {&(_ZTV7ee41100[8]), 8,8},
+ {&(_tg__ZTV5cc100__7ee41100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee41100[];
+extern VTBL_ENTRY _ZTV7ee41100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41100[];
+Class_Descriptor cd_ee41100 = { "ee41100", // class name
+ bases_ee41100, 4,
+ &(vtc_ee41100[0]), // expected_vtbl_contents
+ &(vtt_ee41100[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee41100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41100),8, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41100),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 ee51100 : virtual dd1100 {
+ int e;
+ virtual void bar(); // _ZN7ee511003barEv
+ ~ee51100(); // tgen
+ ee51100(); // tgen
+};
+//SIG(1 ee51100) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} Fi} Fi} v1 Fi}
+
+
+void ee51100 ::bar(){vfunc_called(this, "_ZN7ee511003barEv");}
+ee51100 ::~ee51100(){ note_dtor("ee51100", this);} // tgen
+ee51100 ::ee51100(){ note_ctor("ee51100", this);} // tgen
+
+static void Test_ee51100()
+{
+ extern Class_Descriptor cd_ee51100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee51100, buf);
+ ee51100 *dp, &lv = *(dp=new (buf) ee51100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee51100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee51100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(44,24), "ee51100");
+ check_base_class_offset(lv, (cc100*)(dd1100*), ABISELECT(32,16), "ee51100");
+ check_base_class_offset(lv, (dd1100*), ABISELECT(16,8), "ee51100");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51100.e");
+ test_class_info(&lv, &cd_ee51100);
+ dp->~ee51100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51100(Test_ee51100, "ee51100", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee51100C1Ev();
+extern void _ZN7ee51100D1Ev();
+Name_Map name_map_ee51100[] = {
+ NSPAIR(_ZN7ee51100C1Ev),
+ NSPAIR(_ZN7ee51100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd1100;
+extern VTBL_ENTRY _ZTI6dd1100[];
+extern VTBL_ENTRY _ZTV6dd1100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1100[];
+static Base_Class bases_ee51100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, 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
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1100, 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 _ZTI7ee51100[];
+extern void _ZN7ee511003barEv();
+static VTBL_ENTRY vtc_ee51100[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51100[0]),
+ (VTBL_ENTRY)&_ZN7ee511003barEv,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51100[0]),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee51100[];
+static VTBL_ENTRY _tg__ZTV6dd1100__7ee51100[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__6dd1100__7ee51100[] = {
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__7ee51100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee51100[] = {
+ {&(_ZTV7ee51100[5]), 5,13},
+ {&(_ZTV7ee51100[10]), 10,13},
+ {&(_ZTV7ee51100[13]), 13,13},
+ {&(_tg__ZTV6dd1100__7ee51100[4]), 4,4},
+ {&(_tg__ZTV5cc100__6dd1100__7ee51100[3]), 3,3},
+ {&(_tg__ZTV5cc100__7ee51100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee51100[];
+extern VTBL_ENTRY _ZTV7ee51100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51100[];
+Class_Descriptor cd_ee51100 = { "ee51100", // class name
+ bases_ee51100, 4,
+ &(vtc_ee51100[0]), // expected_vtbl_contents
+ &(vtt_ee51100[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee51100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51100),13, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51100),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 ee61100 : dd1100 {
+ int e;
+ virtual void foo(); // _ZN7ee611003fooEv
+ virtual void bar(); // _ZN7ee611003barEv
+ ~ee61100(); // tgen
+ ee61100(); // tgen
+};
+//SIG(1 ee61100) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee61100 ::foo(){vfunc_called(this, "_ZN7ee611003fooEv");}
+void ee61100 ::bar(){vfunc_called(this, "_ZN7ee611003barEv");}
+ee61100 ::~ee61100(){ note_dtor("ee61100", this);} // tgen
+ee61100 ::ee61100(){ note_ctor("ee61100", this);} // tgen
+
+static void Test_ee61100()
+{
+ extern Class_Descriptor cd_ee61100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee61100, buf);
+ ee61100 *dp, &lv = *(dp=new (buf) ee61100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee61100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee61100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(28,20), "ee61100");
+ check_base_class_offset(lv, (cc100*)(dd1100*), ABISELECT(16,12), "ee61100");
+ check_base_class_offset(lv, (dd1100*), 0, "ee61100");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61100.e");
+ test_class_info(&lv, &cd_ee61100);
+ dp->~ee61100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61100(Test_ee61100, "ee61100", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee61100C1Ev();
+extern void _ZN7ee61100D1Ev();
+Name_Map name_map_ee61100[] = {
+ NSPAIR(_ZN7ee61100C1Ev),
+ NSPAIR(_ZN7ee61100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd1100;
+extern VTBL_ENTRY _ZTI6dd1100[];
+extern VTBL_ENTRY _ZTV6dd1100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1100[];
+static Base_Class bases_ee61100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee61100[];
+extern void _ZN7ee611003fooEv();
+extern void _ZN7ee611003barEv();
+static VTBL_ENTRY vtc_ee61100[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61100[0]),
+ (VTBL_ENTRY)&_ZN7ee611003fooEv,
+ (VTBL_ENTRY)&_ZN7ee611003barEv,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee61100[];
+static VTBL_ENTRY _tg__ZTV6dd1100__7ee61100[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__6dd1100__7ee61100[] = {
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__7ee61100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee61100[] = {
+ {&(_ZTV7ee61100[4]), 4,9},
+ {&(_tg__ZTV6dd1100__7ee61100[4]), 4,4},
+ {&(_tg__ZTV5cc100__6dd1100__7ee61100[3]), 3,3},
+ {&(_ZTV7ee61100[9]), 9,9},
+ {&(_tg__ZTV5cc100__7ee61100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee61100[];
+extern VTBL_ENTRY _ZTV7ee61100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61100[];
+Class_Descriptor cd_ee61100 = { "ee61100", // class name
+ bases_ee61100, 4,
+ &(vtc_ee61100[0]), // expected_vtbl_contents
+ &(vtt_ee61100[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee61100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61100),9, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61100),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 ee71100 : virtual dd1100 {
+ int e;
+ virtual void foo(); // _ZN7ee711003fooEv
+ virtual void bar(); // _ZN7ee711003barEv
+ ~ee71100(); // tgen
+ ee71100(); // tgen
+};
+//SIG(1 ee71100) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee71100 ::foo(){vfunc_called(this, "_ZN7ee711003fooEv");}
+void ee71100 ::bar(){vfunc_called(this, "_ZN7ee711003barEv");}
+ee71100 ::~ee71100(){ note_dtor("ee71100", this);} // tgen
+ee71100 ::ee71100(){ note_ctor("ee71100", this);} // tgen
+
+static void Test_ee71100()
+{
+ extern Class_Descriptor cd_ee71100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee71100, buf);
+ ee71100 *dp, &lv = *(dp=new (buf) ee71100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee71100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee71100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(44,24), "ee71100");
+ check_base_class_offset(lv, (cc100*)(dd1100*), ABISELECT(32,16), "ee71100");
+ check_base_class_offset(lv, (dd1100*), ABISELECT(16,8), "ee71100");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71100.e");
+ test_class_info(&lv, &cd_ee71100);
+ dp->~ee71100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71100(Test_ee71100, "ee71100", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee71100C1Ev();
+extern void _ZN7ee71100D1Ev();
+Name_Map name_map_ee71100[] = {
+ NSPAIR(_ZN7ee71100C1Ev),
+ NSPAIR(_ZN7ee71100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd1100;
+extern VTBL_ENTRY _ZTI6dd1100[];
+extern VTBL_ENTRY _ZTV6dd1100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1100[];
+static Base_Class bases_ee71100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, 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
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1100, 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 _ZTI7ee71100[];
+extern void _ZN7ee711003fooEv();
+extern void _ZN7ee711003barEv();
+static VTBL_ENTRY vtc_ee71100[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71100[0]),
+ (VTBL_ENTRY)&_ZN7ee711003fooEv,
+ (VTBL_ENTRY)&_ZN7ee711003barEv,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71100[0]),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee71100[];
+static VTBL_ENTRY _tg__ZTV6dd1100__7ee71100[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__6dd1100__7ee71100[] = {
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__7ee71100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee71100[] = {
+ {&(_ZTV7ee71100[5]), 5,14},
+ {&(_ZTV7ee71100[11]), 11,14},
+ {&(_ZTV7ee71100[14]), 14,14},
+ {&(_tg__ZTV6dd1100__7ee71100[4]), 4,4},
+ {&(_tg__ZTV5cc100__6dd1100__7ee71100[3]), 3,3},
+ {&(_tg__ZTV5cc100__7ee71100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee71100[];
+extern VTBL_ENTRY _ZTV7ee71100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71100[];
+Class_Descriptor cd_ee71100 = { "ee71100", // class name
+ bases_ee71100, 4,
+ &(vtc_ee71100[0]), // expected_vtbl_contents
+ &(vtt_ee71100[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee71100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71100),14, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71100),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 dd2100 : cc100 {
+ int d;
+ virtual void foo(); // _ZN6dd21003fooEv
+ ~dd2100(); // tgen
+ dd2100(); // tgen
+};
+//SIG(-1 dd2100) C1{ BC2{ VBC3{ BC4{ Fi} Fi} Fi} v1 Fi}
+
+
+void dd2100 ::foo(){vfunc_called(this, "_ZN6dd21003fooEv");}
+dd2100 ::~dd2100(){ note_dtor("dd2100", this);} // tgen
+dd2100 ::dd2100(){ note_ctor("dd2100", this);} // tgen
+
+static void Test_dd2100()
+{
+ extern Class_Descriptor cd_dd2100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd2100, buf);
+ dd2100 *dp, &lv = *(dp=new (buf) dd2100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd2100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(16,12), "dd2100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(16,12), "dd2100");
+ check_base_class_offset(lv, (cc100*), 0, "dd2100");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd2100.d");
+ test_class_info(&lv, &cd_dd2100);
+ dp->~dd2100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2100(Test_dd2100, "dd2100", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd2100C1Ev();
+extern void _ZN6dd2100D1Ev();
+Name_Map name_map_dd2100[] = {
+ NSPAIR(_ZN6dd2100C1Ev),
+ NSPAIR(_ZN6dd2100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+static Base_Class bases_dd2100[] = {
+ // 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, 0},
+ {&cd_bb00, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd2100[];
+extern void _ZN6dd21003fooEv();
+static VTBL_ENTRY vtc_dd2100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2100[0]),
+ (VTBL_ENTRY)&_ZN6dd21003fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd2100[];
+static VTBL_ENTRY _tg__ZTV5cc100__6dd2100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_dd2100[] = {
+ {&(_ZTV6dd2100[3]), 3,4},
+ {&(_tg__ZTV5cc100__6dd2100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI6dd2100[];
+extern VTBL_ENTRY _ZTV6dd2100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2100[];
+Class_Descriptor cd_dd2100 = { "dd2100", // class name
+ bases_dd2100, 3,
+ &(vtc_dd2100[0]), // expected_vtbl_contents
+ &(vtt_dd2100[0]), // expected_vtt_contents
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd2100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2100),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd2100),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 ee02100 : dd2100 {
+ int e;
+ ~ee02100(); // tgen
+ ee02100(); // tgen
+};
+//SIG(1 ee02100) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} Fi} v1 Fi} Fi}
+
+
+ee02100 ::~ee02100(){ note_dtor("ee02100", this);} // tgen
+ee02100 ::ee02100(){ note_ctor("ee02100", this);} // tgen
+
+static void Test_ee02100()
+{
+ extern Class_Descriptor cd_ee02100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee02100, buf);
+ ee02100 *dp, &lv = *(dp=new (buf) ee02100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee02100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee02100");
+ check_base_class_offset(lv, (bb00*)(cc100*)(dd2100*), ABISELECT(20,16), "ee02100");
+ check_base_class_offset(lv, (cc100*)(dd2100*), 0, "ee02100");
+ check_base_class_offset(lv, (dd2100*), 0, "ee02100");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee02100.e");
+ test_class_info(&lv, &cd_ee02100);
+ dp->~ee02100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02100(Test_ee02100, "ee02100", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee02100C1Ev();
+extern void _ZN7ee02100D1Ev();
+Name_Map name_map_ee02100[] = {
+ NSPAIR(_ZN7ee02100C1Ev),
+ NSPAIR(_ZN7ee02100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd2100;
+extern VTBL_ENTRY _ZTI6dd2100[];
+extern VTBL_ENTRY _ZTV6dd2100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2100[];
+static Base_Class bases_ee02100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, 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
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee02100[];
+extern void _ZN6dd21003fooEv();
+static VTBL_ENTRY vtc_ee02100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02100[0]),
+ (VTBL_ENTRY)&_ZN6dd21003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee02100[];
+extern void _ZN6dd21003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2100__7ee02100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2100[0]),
+ (VTBL_ENTRY)&_ZN6dd21003fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1006dd2100__7ee02100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee02100[] = {
+ {&(_ZTV7ee02100[3]), 3,4},
+ {&(_tg__ZTV6dd2100__7ee02100[3]), 3,4},
+ {&(_tg__ZTV5cc1006dd2100__7ee02100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee02100[];
+extern VTBL_ENTRY _ZTV7ee02100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee02100[];
+Class_Descriptor cd_ee02100 = { "ee02100", // class name
+ bases_ee02100, 4,
+ &(vtc_ee02100[0]), // expected_vtbl_contents
+ &(vtt_ee02100[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee02100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02100),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee02100),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 ee12100 : virtual dd2100 {
+ int e;
+ ~ee12100(); // tgen
+ ee12100(); // tgen
+};
+//SIG(1 ee12100) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} Fi} v1 Fi} Fi}
+
+
+ee12100 ::~ee12100(){ note_dtor("ee12100", this);} // tgen
+ee12100 ::ee12100(){ note_ctor("ee12100", this);} // tgen
+
+static void Test_ee12100()
+{
+ extern Class_Descriptor cd_ee12100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee12100, buf);
+ ee12100 *dp, &lv = *(dp=new (buf) ee12100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee12100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee12100");
+ check_base_class_offset(lv, (bb00*)(cc100*)(dd2100*), ABISELECT(32,20), "ee12100");
+ check_base_class_offset(lv, (cc100*)(dd2100*), ABISELECT(16,8), "ee12100");
+ check_base_class_offset(lv, (dd2100*), ABISELECT(16,8), "ee12100");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12100.e");
+ test_class_info(&lv, &cd_ee12100);
+ dp->~ee12100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12100(Test_ee12100, "ee12100", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee12100C1Ev();
+extern void _ZN7ee12100D1Ev();
+Name_Map name_map_ee12100[] = {
+ NSPAIR(_ZN7ee12100C1Ev),
+ NSPAIR(_ZN7ee12100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd2100;
+extern VTBL_ENTRY _ZTI6dd2100[];
+extern VTBL_ENTRY _ZTV6dd2100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2100[];
+static Base_Class bases_ee12100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(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
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2100, 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 _ZTI7ee12100[];
+extern void _ZN6dd21003fooEv();
+static VTBL_ENTRY vtc_ee12100[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12100[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12100[0]),
+ (VTBL_ENTRY)&_ZN6dd21003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee12100[];
+extern void _ZN6dd21003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2100__7ee12100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2100[0]),
+ (VTBL_ENTRY)&_ZN6dd21003fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1006dd2100__7ee12100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee12100[] = {
+ {&(_ZTV7ee12100[4]), 4,9},
+ {&(_ZTV7ee12100[8]), 8,9},
+ {&(_tg__ZTV6dd2100__7ee12100[3]), 3,4},
+ {&(_tg__ZTV5cc1006dd2100__7ee12100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee12100[];
+extern VTBL_ENTRY _ZTV7ee12100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12100[];
+Class_Descriptor cd_ee12100 = { "ee12100", // class name
+ bases_ee12100, 4,
+ &(vtc_ee12100[0]), // expected_vtbl_contents
+ &(vtt_ee12100[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee12100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12100),9, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12100),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 ee22100 : dd2100 {
+ int e;
+ virtual void foo(); // _ZN7ee221003fooEv
+ ~ee22100(); // tgen
+ ee22100(); // tgen
+};
+//SIG(1 ee22100) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee22100 ::foo(){vfunc_called(this, "_ZN7ee221003fooEv");}
+ee22100 ::~ee22100(){ note_dtor("ee22100", this);} // tgen
+ee22100 ::ee22100(){ note_ctor("ee22100", this);} // tgen
+
+static void Test_ee22100()
+{
+ extern Class_Descriptor cd_ee22100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee22100, buf);
+ ee22100 *dp, &lv = *(dp=new (buf) ee22100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee22100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee22100");
+ check_base_class_offset(lv, (bb00*)(cc100*)(dd2100*), ABISELECT(20,16), "ee22100");
+ check_base_class_offset(lv, (cc100*)(dd2100*), 0, "ee22100");
+ check_base_class_offset(lv, (dd2100*), 0, "ee22100");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee22100.e");
+ test_class_info(&lv, &cd_ee22100);
+ dp->~ee22100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22100(Test_ee22100, "ee22100", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee22100C1Ev();
+extern void _ZN7ee22100D1Ev();
+Name_Map name_map_ee22100[] = {
+ NSPAIR(_ZN7ee22100C1Ev),
+ NSPAIR(_ZN7ee22100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd2100;
+extern VTBL_ENTRY _ZTI6dd2100[];
+extern VTBL_ENTRY _ZTV6dd2100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2100[];
+static Base_Class bases_ee22100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, 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
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee22100[];
+extern void _ZN7ee221003fooEv();
+static VTBL_ENTRY vtc_ee22100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22100[0]),
+ (VTBL_ENTRY)&_ZN7ee221003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee22100[];
+extern void _ZN6dd21003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2100__7ee22100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2100[0]),
+ (VTBL_ENTRY)&_ZN6dd21003fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1006dd2100__7ee22100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee22100[] = {
+ {&(_ZTV7ee22100[3]), 3,4},
+ {&(_tg__ZTV6dd2100__7ee22100[3]), 3,4},
+ {&(_tg__ZTV5cc1006dd2100__7ee22100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee22100[];
+extern VTBL_ENTRY _ZTV7ee22100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee22100[];
+Class_Descriptor cd_ee22100 = { "ee22100", // class name
+ bases_ee22100, 4,
+ &(vtc_ee22100[0]), // expected_vtbl_contents
+ &(vtt_ee22100[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee22100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22100),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee22100),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 ee32100 : virtual dd2100 {
+ int e;
+ virtual void foo(); // _ZN7ee321003fooEv
+ ~ee32100(); // tgen
+ ee32100(); // tgen
+};
+//SIG(1 ee32100) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee32100 ::foo(){vfunc_called(this, "_ZN7ee321003fooEv");}
+ee32100 ::~ee32100(){ note_dtor("ee32100", this);} // tgen
+ee32100 ::ee32100(){ note_ctor("ee32100", this);} // tgen
+
+static void Test_ee32100()
+{
+ extern Class_Descriptor cd_ee32100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee32100, buf);
+ ee32100 *dp, &lv = *(dp=new (buf) ee32100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee32100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee32100");
+ check_base_class_offset(lv, (bb00*)(cc100*)(dd2100*), ABISELECT(32,20), "ee32100");
+ check_base_class_offset(lv, (cc100*)(dd2100*), ABISELECT(16,8), "ee32100");
+ check_base_class_offset(lv, (dd2100*), ABISELECT(16,8), "ee32100");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32100.e");
+ test_class_info(&lv, &cd_ee32100);
+ dp->~ee32100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32100(Test_ee32100, "ee32100", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee32100C1Ev();
+extern void _ZN7ee32100D1Ev();
+Name_Map name_map_ee32100[] = {
+ NSPAIR(_ZN7ee32100C1Ev),
+ NSPAIR(_ZN7ee32100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd2100;
+extern VTBL_ENTRY _ZTI6dd2100[];
+extern VTBL_ENTRY _ZTV6dd2100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2100[];
+static Base_Class bases_ee32100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(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
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2100, 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 _ZTI7ee32100[];
+extern void _ZN7ee321003fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee321003fooEv,_ZTv0_n16_N7ee321003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee321003fooEv,_ZThn8_N7ee321003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32100[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32100[0]),
+ (VTBL_ENTRY)&_ZN7ee321003fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32100[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee321003fooEv,_ZTv0_n16_N7ee321003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee32100[];
+extern void _ZN6dd21003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2100__7ee32100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2100[0]),
+ (VTBL_ENTRY)&_ZN6dd21003fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1006dd2100__7ee32100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee32100[] = {
+ {&(_ZTV7ee32100[4]), 4,10},
+ {&(_ZTV7ee32100[9]), 9,10},
+ {&(_tg__ZTV6dd2100__7ee32100[3]), 3,4},
+ {&(_tg__ZTV5cc1006dd2100__7ee32100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee32100[];
+extern VTBL_ENTRY _ZTV7ee32100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32100[];
+static VTBL_ENTRY alt_thunk_names15[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee321003fooEv,_ZTv0_n16_N7ee321003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee321003fooEv,_ZThn8_N7ee321003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32100 = { "ee32100", // class name
+ bases_ee32100, 4,
+ &(vtc_ee32100[0]), // expected_vtbl_contents
+ &(vtt_ee32100[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee32100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32100),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32100),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names15,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42100 : dd2100 {
+ int e;
+ virtual void bar(); // _ZN7ee421003barEv
+ ~ee42100(); // tgen
+ ee42100(); // tgen
+};
+//SIG(1 ee42100) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee42100 ::bar(){vfunc_called(this, "_ZN7ee421003barEv");}
+ee42100 ::~ee42100(){ note_dtor("ee42100", this);} // tgen
+ee42100 ::ee42100(){ note_ctor("ee42100", this);} // tgen
+
+static void Test_ee42100()
+{
+ extern Class_Descriptor cd_ee42100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee42100, buf);
+ ee42100 *dp, &lv = *(dp=new (buf) ee42100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee42100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee42100");
+ check_base_class_offset(lv, (bb00*)(cc100*)(dd2100*), ABISELECT(20,16), "ee42100");
+ check_base_class_offset(lv, (cc100*)(dd2100*), 0, "ee42100");
+ check_base_class_offset(lv, (dd2100*), 0, "ee42100");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee42100.e");
+ test_class_info(&lv, &cd_ee42100);
+ dp->~ee42100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42100(Test_ee42100, "ee42100", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee42100C1Ev();
+extern void _ZN7ee42100D1Ev();
+Name_Map name_map_ee42100[] = {
+ NSPAIR(_ZN7ee42100C1Ev),
+ NSPAIR(_ZN7ee42100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd2100;
+extern VTBL_ENTRY _ZTI6dd2100[];
+extern VTBL_ENTRY _ZTV6dd2100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2100[];
+static Base_Class bases_ee42100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, 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
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee42100[];
+extern void _ZN6dd21003fooEv();
+extern void _ZN7ee421003barEv();
+static VTBL_ENTRY vtc_ee42100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42100[0]),
+ (VTBL_ENTRY)&_ZN6dd21003fooEv,
+ (VTBL_ENTRY)&_ZN7ee421003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee42100[];
+extern void _ZN6dd21003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2100__7ee42100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2100[0]),
+ (VTBL_ENTRY)&_ZN6dd21003fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1006dd2100__7ee42100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee42100[] = {
+ {&(_ZTV7ee42100[3]), 3,5},
+ {&(_tg__ZTV6dd2100__7ee42100[3]), 3,4},
+ {&(_tg__ZTV5cc1006dd2100__7ee42100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee42100[];
+extern VTBL_ENTRY _ZTV7ee42100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee42100[];
+Class_Descriptor cd_ee42100 = { "ee42100", // class name
+ bases_ee42100, 4,
+ &(vtc_ee42100[0]), // expected_vtbl_contents
+ &(vtt_ee42100[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee42100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42100),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee42100),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 ee52100 : virtual dd2100 {
+ int e;
+ virtual void bar(); // _ZN7ee521003barEv
+ ~ee52100(); // tgen
+ ee52100(); // tgen
+};
+//SIG(1 ee52100) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee52100 ::bar(){vfunc_called(this, "_ZN7ee521003barEv");}
+ee52100 ::~ee52100(){ note_dtor("ee52100", this);} // tgen
+ee52100 ::ee52100(){ note_ctor("ee52100", this);} // tgen
+
+static void Test_ee52100()
+{
+ extern Class_Descriptor cd_ee52100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee52100, buf);
+ ee52100 *dp, &lv = *(dp=new (buf) ee52100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee52100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee52100");
+ check_base_class_offset(lv, (bb00*)(cc100*)(dd2100*), ABISELECT(32,20), "ee52100");
+ check_base_class_offset(lv, (cc100*)(dd2100*), ABISELECT(16,8), "ee52100");
+ check_base_class_offset(lv, (dd2100*), ABISELECT(16,8), "ee52100");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52100.e");
+ test_class_info(&lv, &cd_ee52100);
+ dp->~ee52100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52100(Test_ee52100, "ee52100", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee52100C1Ev();
+extern void _ZN7ee52100D1Ev();
+Name_Map name_map_ee52100[] = {
+ NSPAIR(_ZN7ee52100C1Ev),
+ NSPAIR(_ZN7ee52100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd2100;
+extern VTBL_ENTRY _ZTI6dd2100[];
+extern VTBL_ENTRY _ZTV6dd2100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2100[];
+static Base_Class bases_ee52100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(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
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2100, 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 _ZTI7ee52100[];
+extern void _ZN7ee521003barEv();
+extern void _ZN6dd21003fooEv();
+static VTBL_ENTRY vtc_ee52100[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52100[0]),
+ (VTBL_ENTRY)&_ZN7ee521003barEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52100[0]),
+ (VTBL_ENTRY)&_ZN6dd21003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee52100[];
+extern void _ZN6dd21003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2100__7ee52100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2100[0]),
+ (VTBL_ENTRY)&_ZN6dd21003fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1006dd2100__7ee52100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee52100[] = {
+ {&(_ZTV7ee52100[4]), 4,10},
+ {&(_ZTV7ee52100[9]), 9,10},
+ {&(_tg__ZTV6dd2100__7ee52100[3]), 3,4},
+ {&(_tg__ZTV5cc1006dd2100__7ee52100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee52100[];
+extern VTBL_ENTRY _ZTV7ee52100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52100[];
+Class_Descriptor cd_ee52100 = { "ee52100", // class name
+ bases_ee52100, 4,
+ &(vtc_ee52100[0]), // expected_vtbl_contents
+ &(vtt_ee52100[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee52100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52100),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52100),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 ee62100 : dd2100 {
+ int e;
+ virtual void foo(); // _ZN7ee621003fooEv
+ virtual void bar(); // _ZN7ee621003barEv
+ ~ee62100(); // tgen
+ ee62100(); // tgen
+};
+//SIG(1 ee62100) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62100 ::foo(){vfunc_called(this, "_ZN7ee621003fooEv");}
+void ee62100 ::bar(){vfunc_called(this, "_ZN7ee621003barEv");}
+ee62100 ::~ee62100(){ note_dtor("ee62100", this);} // tgen
+ee62100 ::ee62100(){ note_ctor("ee62100", this);} // tgen
+
+static void Test_ee62100()
+{
+ extern Class_Descriptor cd_ee62100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee62100, buf);
+ ee62100 *dp, &lv = *(dp=new (buf) ee62100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee62100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee62100");
+ check_base_class_offset(lv, (bb00*)(cc100*)(dd2100*), ABISELECT(20,16), "ee62100");
+ check_base_class_offset(lv, (cc100*)(dd2100*), 0, "ee62100");
+ check_base_class_offset(lv, (dd2100*), 0, "ee62100");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee62100.e");
+ test_class_info(&lv, &cd_ee62100);
+ dp->~ee62100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62100(Test_ee62100, "ee62100", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee62100C1Ev();
+extern void _ZN7ee62100D1Ev();
+Name_Map name_map_ee62100[] = {
+ NSPAIR(_ZN7ee62100C1Ev),
+ NSPAIR(_ZN7ee62100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd2100;
+extern VTBL_ENTRY _ZTI6dd2100[];
+extern VTBL_ENTRY _ZTV6dd2100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2100[];
+static Base_Class bases_ee62100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, 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
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee62100[];
+extern void _ZN7ee621003fooEv();
+extern void _ZN7ee621003barEv();
+static VTBL_ENTRY vtc_ee62100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62100[0]),
+ (VTBL_ENTRY)&_ZN7ee621003fooEv,
+ (VTBL_ENTRY)&_ZN7ee621003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee62100[];
+extern void _ZN6dd21003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2100__7ee62100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2100[0]),
+ (VTBL_ENTRY)&_ZN6dd21003fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1006dd2100__7ee62100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee62100[] = {
+ {&(_ZTV7ee62100[3]), 3,5},
+ {&(_tg__ZTV6dd2100__7ee62100[3]), 3,4},
+ {&(_tg__ZTV5cc1006dd2100__7ee62100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee62100[];
+extern VTBL_ENTRY _ZTV7ee62100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee62100[];
+Class_Descriptor cd_ee62100 = { "ee62100", // class name
+ bases_ee62100, 4,
+ &(vtc_ee62100[0]), // expected_vtbl_contents
+ &(vtt_ee62100[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee62100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62100),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee62100),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 ee72100 : virtual dd2100 {
+ int e;
+ virtual void foo(); // _ZN7ee721003fooEv
+ virtual void bar(); // _ZN7ee721003barEv
+ ~ee72100(); // tgen
+ ee72100(); // tgen
+};
+//SIG(1 ee72100) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72100 ::foo(){vfunc_called(this, "_ZN7ee721003fooEv");}
+void ee72100 ::bar(){vfunc_called(this, "_ZN7ee721003barEv");}
+ee72100 ::~ee72100(){ note_dtor("ee72100", this);} // tgen
+ee72100 ::ee72100(){ note_ctor("ee72100", this);} // tgen
+
+static void Test_ee72100()
+{
+ extern Class_Descriptor cd_ee72100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee72100, buf);
+ ee72100 *dp, &lv = *(dp=new (buf) ee72100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee72100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee72100");
+ check_base_class_offset(lv, (bb00*)(cc100*)(dd2100*), ABISELECT(32,20), "ee72100");
+ check_base_class_offset(lv, (cc100*)(dd2100*), ABISELECT(16,8), "ee72100");
+ check_base_class_offset(lv, (dd2100*), ABISELECT(16,8), "ee72100");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72100.e");
+ test_class_info(&lv, &cd_ee72100);
+ dp->~ee72100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72100(Test_ee72100, "ee72100", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee72100C1Ev();
+extern void _ZN7ee72100D1Ev();
+Name_Map name_map_ee72100[] = {
+ NSPAIR(_ZN7ee72100C1Ev),
+ NSPAIR(_ZN7ee72100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd2100;
+extern VTBL_ENTRY _ZTI6dd2100[];
+extern VTBL_ENTRY _ZTV6dd2100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2100[];
+static Base_Class bases_ee72100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(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
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2100, 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 _ZTI7ee72100[];
+extern void _ZN7ee721003fooEv();
+extern void _ZN7ee721003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee721003fooEv,_ZTv0_n16_N7ee721003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee721003fooEv,_ZThn8_N7ee721003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72100[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72100[0]),
+ (VTBL_ENTRY)&_ZN7ee721003fooEv,
+ (VTBL_ENTRY)&_ZN7ee721003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72100[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee721003fooEv,_ZTv0_n16_N7ee721003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee72100[];
+extern void _ZN6dd21003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2100__7ee72100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2100[0]),
+ (VTBL_ENTRY)&_ZN6dd21003fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1006dd2100__7ee72100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee72100[] = {
+ {&(_ZTV7ee72100[4]), 4,11},
+ {&(_ZTV7ee72100[10]), 10,11},
+ {&(_tg__ZTV6dd2100__7ee72100[3]), 3,4},
+ {&(_tg__ZTV5cc1006dd2100__7ee72100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee72100[];
+extern VTBL_ENTRY _ZTV7ee72100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72100[];
+static VTBL_ENTRY alt_thunk_names16[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee721003fooEv,_ZTv0_n16_N7ee721003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee721003fooEv,_ZThn8_N7ee721003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72100 = { "ee72100", // class name
+ bases_ee72100, 4,
+ &(vtc_ee72100[0]), // expected_vtbl_contents
+ &(vtt_ee72100[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee72100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72100),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72100),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names16,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3100 : virtual cc100 {
+ int d;
+ virtual void foo(); // _ZN6dd31003fooEv
+ ~dd3100(); // tgen
+ dd3100(); // tgen
+};
+//SIG(-1 dd3100) C1{ VBC2{ VBC3{ BC4{ Fi} Fi} Fi} v1 Fi}
+
+
+void dd3100 ::foo(){vfunc_called(this, "_ZN6dd31003fooEv");}
+dd3100 ::~dd3100(){ note_dtor("dd3100", this);} // tgen
+dd3100 ::dd3100(){ note_ctor("dd3100", this);} // tgen
+
+static void Test_dd3100()
+{
+ extern Class_Descriptor cd_dd3100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd3100, buf);
+ dd3100 *dp, &lv = *(dp=new (buf) dd3100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd3100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,16), "dd3100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(28,16), "dd3100");
+ check_base_class_offset(lv, (cc100*), ABISELECT(16,8), "dd3100");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3100.d");
+ test_class_info(&lv, &cd_dd3100);
+ dp->~dd3100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3100(Test_dd3100, "dd3100", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd3100C1Ev();
+extern void _ZN6dd3100D1Ev();
+Name_Map name_map_dd3100[] = {
+ NSPAIR(_ZN6dd3100C1Ev),
+ NSPAIR(_ZN6dd3100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+static Base_Class bases_dd3100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd3100[];
+extern void _ZN6dd31003fooEv();
+static VTBL_ENTRY vtc_dd3100[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3100[0]),
+ (VTBL_ENTRY)&_ZN6dd31003fooEv,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3100[0]),
+};
+extern VTBL_ENTRY _ZTV6dd3100[];
+static VTBL_ENTRY _tg__ZTV5cc100__6dd3100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_dd3100[] = {
+ {&(_ZTV6dd3100[4]), 4,8},
+ {&(_ZTV6dd3100[8]), 8,8},
+ {&(_tg__ZTV5cc100__6dd3100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI6dd3100[];
+extern VTBL_ENTRY _ZTV6dd3100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3100[];
+Class_Descriptor cd_dd3100 = { "dd3100", // class name
+ bases_dd3100, 3,
+ &(vtc_dd3100[0]), // expected_vtbl_contents
+ &(vtt_dd3100[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd3100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3100),8, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3100),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 ee03100 : dd3100 {
+ int e;
+ ~ee03100(); // tgen
+ ee03100(); // tgen
+};
+//SIG(1 ee03100) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} Fi} v1 Fi} Fi}
+
+
+ee03100 ::~ee03100(){ note_dtor("ee03100", this);} // tgen
+ee03100 ::ee03100(){ note_ctor("ee03100", this);} // tgen
+
+static void Test_ee03100()
+{
+ extern Class_Descriptor cd_ee03100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee03100, buf);
+ ee03100 *dp, &lv = *(dp=new (buf) ee03100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee03100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee03100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(28,20), "ee03100");
+ check_base_class_offset(lv, (cc100*)(dd3100*), ABISELECT(16,12), "ee03100");
+ check_base_class_offset(lv, (dd3100*), 0, "ee03100");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03100.e");
+ test_class_info(&lv, &cd_ee03100);
+ dp->~ee03100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03100(Test_ee03100, "ee03100", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee03100C1Ev();
+extern void _ZN7ee03100D1Ev();
+Name_Map name_map_ee03100[] = {
+ NSPAIR(_ZN7ee03100C1Ev),
+ NSPAIR(_ZN7ee03100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd3100;
+extern VTBL_ENTRY _ZTI6dd3100[];
+extern VTBL_ENTRY _ZTV6dd3100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3100[];
+static Base_Class bases_ee03100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee03100[];
+extern void _ZN6dd31003fooEv();
+static VTBL_ENTRY vtc_ee03100[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03100[0]),
+ (VTBL_ENTRY)&_ZN6dd31003fooEv,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee03100[];
+extern void _ZN6dd31003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3100__7ee03100[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3100[0]),
+ (VTBL_ENTRY)&_ZN6dd31003fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc100__6dd3100__7ee03100[] = {
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__7ee03100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee03100[] = {
+ {&(_ZTV7ee03100[4]), 4,8},
+ {&(_tg__ZTV6dd3100__7ee03100[4]), 4,5},
+ {&(_tg__ZTV5cc100__6dd3100__7ee03100[3]), 3,3},
+ {&(_ZTV7ee03100[8]), 8,8},
+ {&(_tg__ZTV5cc100__7ee03100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee03100[];
+extern VTBL_ENTRY _ZTV7ee03100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03100[];
+Class_Descriptor cd_ee03100 = { "ee03100", // class name
+ bases_ee03100, 4,
+ &(vtc_ee03100[0]), // expected_vtbl_contents
+ &(vtt_ee03100[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee03100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03100),8, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03100),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 ee13100 : virtual dd3100 {
+ int e;
+ ~ee13100(); // tgen
+ ee13100(); // tgen
+};
+//SIG(1 ee13100) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} Fi} v1 Fi} Fi}
+
+
+ee13100 ::~ee13100(){ note_dtor("ee13100", this);} // tgen
+ee13100 ::ee13100(){ note_ctor("ee13100", this);} // tgen
+
+static void Test_ee13100()
+{
+ extern Class_Descriptor cd_ee13100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee13100, buf);
+ ee13100 *dp, &lv = *(dp=new (buf) ee13100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee13100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee13100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(44,24), "ee13100");
+ check_base_class_offset(lv, (cc100*)(dd3100*), ABISELECT(32,16), "ee13100");
+ check_base_class_offset(lv, (dd3100*), ABISELECT(16,8), "ee13100");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13100.e");
+ test_class_info(&lv, &cd_ee13100);
+ dp->~ee13100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13100(Test_ee13100, "ee13100", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee13100C1Ev();
+extern void _ZN7ee13100D1Ev();
+Name_Map name_map_ee13100[] = {
+ NSPAIR(_ZN7ee13100C1Ev),
+ NSPAIR(_ZN7ee13100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd3100;
+extern VTBL_ENTRY _ZTI6dd3100[];
+extern VTBL_ENTRY _ZTV6dd3100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3100[];
+static Base_Class bases_ee13100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, 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
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3100, 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 _ZTI7ee13100[];
+extern void _ZN6dd31003fooEv();
+static VTBL_ENTRY vtc_ee13100[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13100[0]),
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13100[0]),
+ (VTBL_ENTRY)&_ZN6dd31003fooEv,
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee13100[];
+extern void _ZN6dd31003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3100__7ee13100[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3100[0]),
+ (VTBL_ENTRY)&_ZN6dd31003fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc100__6dd3100__7ee13100[] = {
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__7ee13100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee13100[] = {
+ {&(_ZTV7ee13100[5]), 5,14},
+ {&(_ZTV7ee13100[10]), 10,14},
+ {&(_ZTV7ee13100[14]), 14,14},
+ {&(_tg__ZTV6dd3100__7ee13100[4]), 4,5},
+ {&(_tg__ZTV5cc100__6dd3100__7ee13100[3]), 3,3},
+ {&(_tg__ZTV5cc100__7ee13100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee13100[];
+extern VTBL_ENTRY _ZTV7ee13100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13100[];
+Class_Descriptor cd_ee13100 = { "ee13100", // class name
+ bases_ee13100, 4,
+ &(vtc_ee13100[0]), // expected_vtbl_contents
+ &(vtt_ee13100[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee13100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13100),14, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13100),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 ee23100 : dd3100 {
+ int e;
+ virtual void foo(); // _ZN7ee231003fooEv
+ ~ee23100(); // tgen
+ ee23100(); // tgen
+};
+//SIG(1 ee23100) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee23100 ::foo(){vfunc_called(this, "_ZN7ee231003fooEv");}
+ee23100 ::~ee23100(){ note_dtor("ee23100", this);} // tgen
+ee23100 ::ee23100(){ note_ctor("ee23100", this);} // tgen
+
+static void Test_ee23100()
+{
+ extern Class_Descriptor cd_ee23100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee23100, buf);
+ ee23100 *dp, &lv = *(dp=new (buf) ee23100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee23100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee23100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(28,20), "ee23100");
+ check_base_class_offset(lv, (cc100*)(dd3100*), ABISELECT(16,12), "ee23100");
+ check_base_class_offset(lv, (dd3100*), 0, "ee23100");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23100.e");
+ test_class_info(&lv, &cd_ee23100);
+ dp->~ee23100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23100(Test_ee23100, "ee23100", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee23100C1Ev();
+extern void _ZN7ee23100D1Ev();
+Name_Map name_map_ee23100[] = {
+ NSPAIR(_ZN7ee23100C1Ev),
+ NSPAIR(_ZN7ee23100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd3100;
+extern VTBL_ENTRY _ZTI6dd3100[];
+extern VTBL_ENTRY _ZTV6dd3100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3100[];
+static Base_Class bases_ee23100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee23100[];
+extern void _ZN7ee231003fooEv();
+static VTBL_ENTRY vtc_ee23100[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23100[0]),
+ (VTBL_ENTRY)&_ZN7ee231003fooEv,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee23100[];
+extern void _ZN6dd31003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3100__7ee23100[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3100[0]),
+ (VTBL_ENTRY)&_ZN6dd31003fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc100__6dd3100__7ee23100[] = {
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__7ee23100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee23100[] = {
+ {&(_ZTV7ee23100[4]), 4,8},
+ {&(_tg__ZTV6dd3100__7ee23100[4]), 4,5},
+ {&(_tg__ZTV5cc100__6dd3100__7ee23100[3]), 3,3},
+ {&(_ZTV7ee23100[8]), 8,8},
+ {&(_tg__ZTV5cc100__7ee23100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee23100[];
+extern VTBL_ENTRY _ZTV7ee23100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23100[];
+Class_Descriptor cd_ee23100 = { "ee23100", // class name
+ bases_ee23100, 4,
+ &(vtc_ee23100[0]), // expected_vtbl_contents
+ &(vtt_ee23100[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee23100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23100),8, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23100),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 ee33100 : virtual dd3100 {
+ int e;
+ virtual void foo(); // _ZN7ee331003fooEv
+ ~ee33100(); // tgen
+ ee33100(); // tgen
+};
+//SIG(1 ee33100) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee33100 ::foo(){vfunc_called(this, "_ZN7ee331003fooEv");}
+ee33100 ::~ee33100(){ note_dtor("ee33100", this);} // tgen
+ee33100 ::ee33100(){ note_ctor("ee33100", this);} // tgen
+
+static void Test_ee33100()
+{
+ extern Class_Descriptor cd_ee33100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee33100, buf);
+ ee33100 *dp, &lv = *(dp=new (buf) ee33100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee33100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee33100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(44,24), "ee33100");
+ check_base_class_offset(lv, (cc100*)(dd3100*), ABISELECT(32,16), "ee33100");
+ check_base_class_offset(lv, (dd3100*), ABISELECT(16,8), "ee33100");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33100.e");
+ test_class_info(&lv, &cd_ee33100);
+ dp->~ee33100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33100(Test_ee33100, "ee33100", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee33100C1Ev();
+extern void _ZN7ee33100D1Ev();
+Name_Map name_map_ee33100[] = {
+ NSPAIR(_ZN7ee33100C1Ev),
+ NSPAIR(_ZN7ee33100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd3100;
+extern VTBL_ENTRY _ZTI6dd3100[];
+extern VTBL_ENTRY _ZTV6dd3100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3100[];
+static Base_Class bases_ee33100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3100, 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 _ZTI7ee33100[];
+extern void _ZN7ee331003fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee331003fooEv,_ZTv0_n20_N7ee331003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee331003fooEv,_ZThn8_N7ee331003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee33100[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33100[0]),
+ (VTBL_ENTRY)&_ZN7ee331003fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33100[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee331003fooEv,_ZTv0_n20_N7ee331003fooEv),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee33100[];
+extern void _ZN6dd31003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3100__7ee33100[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3100[0]),
+ (VTBL_ENTRY)&_ZN6dd31003fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc100__6dd3100__7ee33100[] = {
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__7ee33100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee33100[] = {
+ {&(_ZTV7ee33100[5]), 5,15},
+ {&(_ZTV7ee33100[11]), 11,15},
+ {&(_ZTV7ee33100[15]), 15,15},
+ {&(_tg__ZTV6dd3100__7ee33100[4]), 4,5},
+ {&(_tg__ZTV5cc100__6dd3100__7ee33100[3]), 3,3},
+ {&(_tg__ZTV5cc100__7ee33100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee33100[];
+extern VTBL_ENTRY _ZTV7ee33100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33100[];
+static VTBL_ENTRY alt_thunk_names17[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee331003fooEv,_ZTv0_n20_N7ee331003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee331003fooEv,_ZThn8_N7ee331003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33100 = { "ee33100", // class name
+ bases_ee33100, 4,
+ &(vtc_ee33100[0]), // expected_vtbl_contents
+ &(vtt_ee33100[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee33100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33100),15, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33100),6, //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 ee43100 : dd3100 {
+ int e;
+ virtual void bar(); // _ZN7ee431003barEv
+ ~ee43100(); // tgen
+ ee43100(); // tgen
+};
+//SIG(1 ee43100) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee43100 ::bar(){vfunc_called(this, "_ZN7ee431003barEv");}
+ee43100 ::~ee43100(){ note_dtor("ee43100", this);} // tgen
+ee43100 ::ee43100(){ note_ctor("ee43100", this);} // tgen
+
+static void Test_ee43100()
+{
+ extern Class_Descriptor cd_ee43100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee43100, buf);
+ ee43100 *dp, &lv = *(dp=new (buf) ee43100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee43100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee43100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(28,20), "ee43100");
+ check_base_class_offset(lv, (cc100*)(dd3100*), ABISELECT(16,12), "ee43100");
+ check_base_class_offset(lv, (dd3100*), 0, "ee43100");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43100.e");
+ test_class_info(&lv, &cd_ee43100);
+ dp->~ee43100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43100(Test_ee43100, "ee43100", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee43100C1Ev();
+extern void _ZN7ee43100D1Ev();
+Name_Map name_map_ee43100[] = {
+ NSPAIR(_ZN7ee43100C1Ev),
+ NSPAIR(_ZN7ee43100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd3100;
+extern VTBL_ENTRY _ZTI6dd3100[];
+extern VTBL_ENTRY _ZTV6dd3100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3100[];
+static Base_Class bases_ee43100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee43100[];
+extern void _ZN6dd31003fooEv();
+extern void _ZN7ee431003barEv();
+static VTBL_ENTRY vtc_ee43100[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43100[0]),
+ (VTBL_ENTRY)&_ZN6dd31003fooEv,
+ (VTBL_ENTRY)&_ZN7ee431003barEv,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee43100[];
+extern void _ZN6dd31003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3100__7ee43100[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3100[0]),
+ (VTBL_ENTRY)&_ZN6dd31003fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc100__6dd3100__7ee43100[] = {
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__7ee43100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee43100[] = {
+ {&(_ZTV7ee43100[4]), 4,9},
+ {&(_tg__ZTV6dd3100__7ee43100[4]), 4,5},
+ {&(_tg__ZTV5cc100__6dd3100__7ee43100[3]), 3,3},
+ {&(_ZTV7ee43100[9]), 9,9},
+ {&(_tg__ZTV5cc100__7ee43100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee43100[];
+extern VTBL_ENTRY _ZTV7ee43100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43100[];
+Class_Descriptor cd_ee43100 = { "ee43100", // class name
+ bases_ee43100, 4,
+ &(vtc_ee43100[0]), // expected_vtbl_contents
+ &(vtt_ee43100[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee43100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43100),9, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43100),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 ee53100 : virtual dd3100 {
+ int e;
+ virtual void bar(); // _ZN7ee531003barEv
+ ~ee53100(); // tgen
+ ee53100(); // tgen
+};
+//SIG(1 ee53100) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee53100 ::bar(){vfunc_called(this, "_ZN7ee531003barEv");}
+ee53100 ::~ee53100(){ note_dtor("ee53100", this);} // tgen
+ee53100 ::ee53100(){ note_ctor("ee53100", this);} // tgen
+
+static void Test_ee53100()
+{
+ extern Class_Descriptor cd_ee53100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee53100, buf);
+ ee53100 *dp, &lv = *(dp=new (buf) ee53100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee53100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee53100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(44,24), "ee53100");
+ check_base_class_offset(lv, (cc100*)(dd3100*), ABISELECT(32,16), "ee53100");
+ check_base_class_offset(lv, (dd3100*), ABISELECT(16,8), "ee53100");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53100.e");
+ test_class_info(&lv, &cd_ee53100);
+ dp->~ee53100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53100(Test_ee53100, "ee53100", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee53100C1Ev();
+extern void _ZN7ee53100D1Ev();
+Name_Map name_map_ee53100[] = {
+ NSPAIR(_ZN7ee53100C1Ev),
+ NSPAIR(_ZN7ee53100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd3100;
+extern VTBL_ENTRY _ZTI6dd3100[];
+extern VTBL_ENTRY _ZTV6dd3100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3100[];
+static Base_Class bases_ee53100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3100, 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 _ZTI7ee53100[];
+extern void _ZN7ee531003barEv();
+extern void _ZN6dd31003fooEv();
+static VTBL_ENTRY vtc_ee53100[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53100[0]),
+ (VTBL_ENTRY)&_ZN7ee531003barEv,
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53100[0]),
+ (VTBL_ENTRY)&_ZN6dd31003fooEv,
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee53100[];
+extern void _ZN6dd31003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3100__7ee53100[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3100[0]),
+ (VTBL_ENTRY)&_ZN6dd31003fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc100__6dd3100__7ee53100[] = {
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__7ee53100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee53100[] = {
+ {&(_ZTV7ee53100[5]), 5,15},
+ {&(_ZTV7ee53100[11]), 11,15},
+ {&(_ZTV7ee53100[15]), 15,15},
+ {&(_tg__ZTV6dd3100__7ee53100[4]), 4,5},
+ {&(_tg__ZTV5cc100__6dd3100__7ee53100[3]), 3,3},
+ {&(_tg__ZTV5cc100__7ee53100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee53100[];
+extern VTBL_ENTRY _ZTV7ee53100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53100[];
+Class_Descriptor cd_ee53100 = { "ee53100", // class name
+ bases_ee53100, 4,
+ &(vtc_ee53100[0]), // expected_vtbl_contents
+ &(vtt_ee53100[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee53100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53100),15, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53100),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 ee63100 : dd3100 {
+ int e;
+ virtual void foo(); // _ZN7ee631003fooEv
+ virtual void bar(); // _ZN7ee631003barEv
+ ~ee63100(); // tgen
+ ee63100(); // tgen
+};
+//SIG(1 ee63100) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63100 ::foo(){vfunc_called(this, "_ZN7ee631003fooEv");}
+void ee63100 ::bar(){vfunc_called(this, "_ZN7ee631003barEv");}
+ee63100 ::~ee63100(){ note_dtor("ee63100", this);} // tgen
+ee63100 ::ee63100(){ note_ctor("ee63100", this);} // tgen
+
+static void Test_ee63100()
+{
+ extern Class_Descriptor cd_ee63100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee63100, buf);
+ ee63100 *dp, &lv = *(dp=new (buf) ee63100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee63100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee63100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(28,20), "ee63100");
+ check_base_class_offset(lv, (cc100*)(dd3100*), ABISELECT(16,12), "ee63100");
+ check_base_class_offset(lv, (dd3100*), 0, "ee63100");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63100.e");
+ test_class_info(&lv, &cd_ee63100);
+ dp->~ee63100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63100(Test_ee63100, "ee63100", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee63100C1Ev();
+extern void _ZN7ee63100D1Ev();
+Name_Map name_map_ee63100[] = {
+ NSPAIR(_ZN7ee63100C1Ev),
+ NSPAIR(_ZN7ee63100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd3100;
+extern VTBL_ENTRY _ZTI6dd3100[];
+extern VTBL_ENTRY _ZTV6dd3100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3100[];
+static Base_Class bases_ee63100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee63100[];
+extern void _ZN7ee631003fooEv();
+extern void _ZN7ee631003barEv();
+static VTBL_ENTRY vtc_ee63100[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63100[0]),
+ (VTBL_ENTRY)&_ZN7ee631003fooEv,
+ (VTBL_ENTRY)&_ZN7ee631003barEv,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee63100[];
+extern void _ZN6dd31003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3100__7ee63100[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3100[0]),
+ (VTBL_ENTRY)&_ZN6dd31003fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc100__6dd3100__7ee63100[] = {
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__7ee63100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee63100[] = {
+ {&(_ZTV7ee63100[4]), 4,9},
+ {&(_tg__ZTV6dd3100__7ee63100[4]), 4,5},
+ {&(_tg__ZTV5cc100__6dd3100__7ee63100[3]), 3,3},
+ {&(_ZTV7ee63100[9]), 9,9},
+ {&(_tg__ZTV5cc100__7ee63100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee63100[];
+extern VTBL_ENTRY _ZTV7ee63100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63100[];
+Class_Descriptor cd_ee63100 = { "ee63100", // class name
+ bases_ee63100, 4,
+ &(vtc_ee63100[0]), // expected_vtbl_contents
+ &(vtt_ee63100[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee63100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63100),9, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63100),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 ee73100 : virtual dd3100 {
+ int e;
+ virtual void foo(); // _ZN7ee731003fooEv
+ virtual void bar(); // _ZN7ee731003barEv
+ ~ee73100(); // tgen
+ ee73100(); // tgen
+};
+//SIG(1 ee73100) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73100 ::foo(){vfunc_called(this, "_ZN7ee731003fooEv");}
+void ee73100 ::bar(){vfunc_called(this, "_ZN7ee731003barEv");}
+ee73100 ::~ee73100(){ note_dtor("ee73100", this);} // tgen
+ee73100 ::ee73100(){ note_ctor("ee73100", this);} // tgen
+
+static void Test_ee73100()
+{
+ extern Class_Descriptor cd_ee73100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee73100, buf);
+ ee73100 *dp, &lv = *(dp=new (buf) ee73100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee73100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee73100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(44,24), "ee73100");
+ check_base_class_offset(lv, (cc100*)(dd3100*), ABISELECT(32,16), "ee73100");
+ check_base_class_offset(lv, (dd3100*), ABISELECT(16,8), "ee73100");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73100.e");
+ test_class_info(&lv, &cd_ee73100);
+ dp->~ee73100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73100(Test_ee73100, "ee73100", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee73100C1Ev();
+extern void _ZN7ee73100D1Ev();
+Name_Map name_map_ee73100[] = {
+ NSPAIR(_ZN7ee73100C1Ev),
+ NSPAIR(_ZN7ee73100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd3100;
+extern VTBL_ENTRY _ZTI6dd3100[];
+extern VTBL_ENTRY _ZTV6dd3100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3100[];
+static Base_Class bases_ee73100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3100, 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 _ZTI7ee73100[];
+extern void _ZN7ee731003fooEv();
+extern void _ZN7ee731003barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee731003fooEv,_ZTv0_n20_N7ee731003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee731003fooEv,_ZThn8_N7ee731003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73100[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73100[0]),
+ (VTBL_ENTRY)&_ZN7ee731003fooEv,
+ (VTBL_ENTRY)&_ZN7ee731003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73100[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee731003fooEv,_ZTv0_n20_N7ee731003fooEv),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee73100[];
+extern void _ZN6dd31003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3100__7ee73100[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3100[0]),
+ (VTBL_ENTRY)&_ZN6dd31003fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc100__6dd3100__7ee73100[] = {
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__7ee73100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee73100[] = {
+ {&(_ZTV7ee73100[5]), 5,16},
+ {&(_ZTV7ee73100[12]), 12,16},
+ {&(_ZTV7ee73100[16]), 16,16},
+ {&(_tg__ZTV6dd3100__7ee73100[4]), 4,5},
+ {&(_tg__ZTV5cc100__6dd3100__7ee73100[3]), 3,3},
+ {&(_tg__ZTV5cc100__7ee73100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee73100[];
+extern VTBL_ENTRY _ZTV7ee73100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73100[];
+static VTBL_ENTRY alt_thunk_names18[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee731003fooEv,_ZTv0_n20_N7ee731003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee731003fooEv,_ZThn8_N7ee731003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73100 = { "ee73100", // class name
+ bases_ee73100, 4,
+ &(vtc_ee73100[0]), // expected_vtbl_contents
+ &(vtt_ee73100[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee73100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73100),16, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73100),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names18,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4100 : cc100 {
+ int d;
+ virtual void bar(); // _ZN6dd41003barEv
+ ~dd4100(); // tgen
+ dd4100(); // tgen
+};
+//SIG(-1 dd4100) C1{ BC2{ VBC3{ BC4{ Fi} Fi} Fi} v1 Fi}
+
+
+void dd4100 ::bar(){vfunc_called(this, "_ZN6dd41003barEv");}
+dd4100 ::~dd4100(){ note_dtor("dd4100", this);} // tgen
+dd4100 ::dd4100(){ note_ctor("dd4100", this);} // tgen
+
+static void Test_dd4100()
+{
+ extern Class_Descriptor cd_dd4100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd4100, buf);
+ dd4100 *dp, &lv = *(dp=new (buf) dd4100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd4100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(16,12), "dd4100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(16,12), "dd4100");
+ check_base_class_offset(lv, (cc100*), 0, "dd4100");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd4100.d");
+ test_class_info(&lv, &cd_dd4100);
+ dp->~dd4100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4100(Test_dd4100, "dd4100", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd4100C1Ev();
+extern void _ZN6dd4100D1Ev();
+Name_Map name_map_dd4100[] = {
+ NSPAIR(_ZN6dd4100C1Ev),
+ NSPAIR(_ZN6dd4100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+static Base_Class bases_dd4100[] = {
+ // 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, 0},
+ {&cd_bb00, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd4100[];
+extern void _ZN6dd41003barEv();
+static VTBL_ENTRY vtc_dd4100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4100[0]),
+ (VTBL_ENTRY)&_ZN6dd41003barEv,
+};
+extern VTBL_ENTRY _ZTV6dd4100[];
+static VTBL_ENTRY _tg__ZTV5cc100__6dd4100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_dd4100[] = {
+ {&(_ZTV6dd4100[3]), 3,4},
+ {&(_tg__ZTV5cc100__6dd4100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI6dd4100[];
+extern VTBL_ENTRY _ZTV6dd4100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4100[];
+Class_Descriptor cd_dd4100 = { "dd4100", // class name
+ bases_dd4100, 3,
+ &(vtc_dd4100[0]), // expected_vtbl_contents
+ &(vtt_dd4100[0]), // expected_vtt_contents
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd4100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4100),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd4100),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 ee04100 : dd4100 {
+ int e;
+ ~ee04100(); // tgen
+ ee04100(); // tgen
+};
+//SIG(1 ee04100) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} Fi} v1 Fi} Fi}
+
+
+ee04100 ::~ee04100(){ note_dtor("ee04100", this);} // tgen
+ee04100 ::ee04100(){ note_ctor("ee04100", this);} // tgen
+
+static void Test_ee04100()
+{
+ extern Class_Descriptor cd_ee04100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee04100, buf);
+ ee04100 *dp, &lv = *(dp=new (buf) ee04100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee04100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee04100");
+ check_base_class_offset(lv, (bb00*)(cc100*)(dd4100*), ABISELECT(20,16), "ee04100");
+ check_base_class_offset(lv, (cc100*)(dd4100*), 0, "ee04100");
+ check_base_class_offset(lv, (dd4100*), 0, "ee04100");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee04100.e");
+ test_class_info(&lv, &cd_ee04100);
+ dp->~ee04100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04100(Test_ee04100, "ee04100", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee04100C1Ev();
+extern void _ZN7ee04100D1Ev();
+Name_Map name_map_ee04100[] = {
+ NSPAIR(_ZN7ee04100C1Ev),
+ NSPAIR(_ZN7ee04100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd4100;
+extern VTBL_ENTRY _ZTI6dd4100[];
+extern VTBL_ENTRY _ZTV6dd4100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4100[];
+static Base_Class bases_ee04100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, 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
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee04100[];
+extern void _ZN6dd41003barEv();
+static VTBL_ENTRY vtc_ee04100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04100[0]),
+ (VTBL_ENTRY)&_ZN6dd41003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee04100[];
+extern void _ZN6dd41003barEv();
+static VTBL_ENTRY _tg__ZTV6dd4100__7ee04100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4100[0]),
+ (VTBL_ENTRY)&_ZN6dd41003barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1006dd4100__7ee04100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee04100[] = {
+ {&(_ZTV7ee04100[3]), 3,4},
+ {&(_tg__ZTV6dd4100__7ee04100[3]), 3,4},
+ {&(_tg__ZTV5cc1006dd4100__7ee04100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee04100[];
+extern VTBL_ENTRY _ZTV7ee04100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee04100[];
+Class_Descriptor cd_ee04100 = { "ee04100", // class name
+ bases_ee04100, 4,
+ &(vtc_ee04100[0]), // expected_vtbl_contents
+ &(vtt_ee04100[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee04100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04100),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee04100),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 ee14100 : virtual dd4100 {
+ int e;
+ ~ee14100(); // tgen
+ ee14100(); // tgen
+};
+//SIG(1 ee14100) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} Fi} v1 Fi} Fi}
+
+
+ee14100 ::~ee14100(){ note_dtor("ee14100", this);} // tgen
+ee14100 ::ee14100(){ note_ctor("ee14100", this);} // tgen
+
+static void Test_ee14100()
+{
+ extern Class_Descriptor cd_ee14100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee14100, buf);
+ ee14100 *dp, &lv = *(dp=new (buf) ee14100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee14100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee14100");
+ check_base_class_offset(lv, (bb00*)(cc100*)(dd4100*), ABISELECT(32,20), "ee14100");
+ check_base_class_offset(lv, (cc100*)(dd4100*), ABISELECT(16,8), "ee14100");
+ check_base_class_offset(lv, (dd4100*), ABISELECT(16,8), "ee14100");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14100.e");
+ test_class_info(&lv, &cd_ee14100);
+ dp->~ee14100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14100(Test_ee14100, "ee14100", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee14100C1Ev();
+extern void _ZN7ee14100D1Ev();
+Name_Map name_map_ee14100[] = {
+ NSPAIR(_ZN7ee14100C1Ev),
+ NSPAIR(_ZN7ee14100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd4100;
+extern VTBL_ENTRY _ZTI6dd4100[];
+extern VTBL_ENTRY _ZTV6dd4100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4100[];
+static Base_Class bases_ee14100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(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
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4100, 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 _ZTI7ee14100[];
+extern void _ZN6dd41003barEv();
+static VTBL_ENTRY vtc_ee14100[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14100[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14100[0]),
+ (VTBL_ENTRY)&_ZN6dd41003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee14100[];
+extern void _ZN6dd41003barEv();
+static VTBL_ENTRY _tg__ZTV6dd4100__7ee14100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4100[0]),
+ (VTBL_ENTRY)&_ZN6dd41003barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1006dd4100__7ee14100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee14100[] = {
+ {&(_ZTV7ee14100[4]), 4,9},
+ {&(_ZTV7ee14100[8]), 8,9},
+ {&(_tg__ZTV6dd4100__7ee14100[3]), 3,4},
+ {&(_tg__ZTV5cc1006dd4100__7ee14100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee14100[];
+extern VTBL_ENTRY _ZTV7ee14100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14100[];
+Class_Descriptor cd_ee14100 = { "ee14100", // class name
+ bases_ee14100, 4,
+ &(vtc_ee14100[0]), // expected_vtbl_contents
+ &(vtt_ee14100[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee14100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14100),9, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14100),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 ee24100 : dd4100 {
+ int e;
+ virtual void foo(); // _ZN7ee241003fooEv
+ ~ee24100(); // tgen
+ ee24100(); // tgen
+};
+//SIG(1 ee24100) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee24100 ::foo(){vfunc_called(this, "_ZN7ee241003fooEv");}
+ee24100 ::~ee24100(){ note_dtor("ee24100", this);} // tgen
+ee24100 ::ee24100(){ note_ctor("ee24100", this);} // tgen
+
+static void Test_ee24100()
+{
+ extern Class_Descriptor cd_ee24100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee24100, buf);
+ ee24100 *dp, &lv = *(dp=new (buf) ee24100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee24100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee24100");
+ check_base_class_offset(lv, (bb00*)(cc100*)(dd4100*), ABISELECT(20,16), "ee24100");
+ check_base_class_offset(lv, (cc100*)(dd4100*), 0, "ee24100");
+ check_base_class_offset(lv, (dd4100*), 0, "ee24100");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee24100.e");
+ test_class_info(&lv, &cd_ee24100);
+ dp->~ee24100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24100(Test_ee24100, "ee24100", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee24100C1Ev();
+extern void _ZN7ee24100D1Ev();
+Name_Map name_map_ee24100[] = {
+ NSPAIR(_ZN7ee24100C1Ev),
+ NSPAIR(_ZN7ee24100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd4100;
+extern VTBL_ENTRY _ZTI6dd4100[];
+extern VTBL_ENTRY _ZTV6dd4100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4100[];
+static Base_Class bases_ee24100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, 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
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee24100[];
+extern void _ZN6dd41003barEv();
+extern void _ZN7ee241003fooEv();
+static VTBL_ENTRY vtc_ee24100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24100[0]),
+ (VTBL_ENTRY)&_ZN6dd41003barEv,
+ (VTBL_ENTRY)&_ZN7ee241003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee24100[];
+extern void _ZN6dd41003barEv();
+static VTBL_ENTRY _tg__ZTV6dd4100__7ee24100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4100[0]),
+ (VTBL_ENTRY)&_ZN6dd41003barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1006dd4100__7ee24100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee24100[] = {
+ {&(_ZTV7ee24100[3]), 3,5},
+ {&(_tg__ZTV6dd4100__7ee24100[3]), 3,4},
+ {&(_tg__ZTV5cc1006dd4100__7ee24100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee24100[];
+extern VTBL_ENTRY _ZTV7ee24100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee24100[];
+Class_Descriptor cd_ee24100 = { "ee24100", // class name
+ bases_ee24100, 4,
+ &(vtc_ee24100[0]), // expected_vtbl_contents
+ &(vtt_ee24100[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee24100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24100),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee24100),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 ee34100 : virtual dd4100 {
+ int e;
+ virtual void foo(); // _ZN7ee341003fooEv
+ ~ee34100(); // tgen
+ ee34100(); // tgen
+};
+//SIG(1 ee34100) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee34100 ::foo(){vfunc_called(this, "_ZN7ee341003fooEv");}
+ee34100 ::~ee34100(){ note_dtor("ee34100", this);} // tgen
+ee34100 ::ee34100(){ note_ctor("ee34100", this);} // tgen
+
+static void Test_ee34100()
+{
+ extern Class_Descriptor cd_ee34100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee34100, buf);
+ ee34100 *dp, &lv = *(dp=new (buf) ee34100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee34100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee34100");
+ check_base_class_offset(lv, (bb00*)(cc100*)(dd4100*), ABISELECT(32,20), "ee34100");
+ check_base_class_offset(lv, (cc100*)(dd4100*), ABISELECT(16,8), "ee34100");
+ check_base_class_offset(lv, (dd4100*), ABISELECT(16,8), "ee34100");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34100.e");
+ test_class_info(&lv, &cd_ee34100);
+ dp->~ee34100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34100(Test_ee34100, "ee34100", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee34100C1Ev();
+extern void _ZN7ee34100D1Ev();
+Name_Map name_map_ee34100[] = {
+ NSPAIR(_ZN7ee34100C1Ev),
+ NSPAIR(_ZN7ee34100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd4100;
+extern VTBL_ENTRY _ZTI6dd4100[];
+extern VTBL_ENTRY _ZTV6dd4100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4100[];
+static Base_Class bases_ee34100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(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
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4100, 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 _ZTI7ee34100[];
+extern void _ZN7ee341003fooEv();
+extern void _ZN6dd41003barEv();
+static VTBL_ENTRY vtc_ee34100[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34100[0]),
+ (VTBL_ENTRY)&_ZN7ee341003fooEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34100[0]),
+ (VTBL_ENTRY)&_ZN6dd41003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee34100[];
+extern void _ZN6dd41003barEv();
+static VTBL_ENTRY _tg__ZTV6dd4100__7ee34100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4100[0]),
+ (VTBL_ENTRY)&_ZN6dd41003barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1006dd4100__7ee34100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee34100[] = {
+ {&(_ZTV7ee34100[4]), 4,10},
+ {&(_ZTV7ee34100[9]), 9,10},
+ {&(_tg__ZTV6dd4100__7ee34100[3]), 3,4},
+ {&(_tg__ZTV5cc1006dd4100__7ee34100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee34100[];
+extern VTBL_ENTRY _ZTV7ee34100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34100[];
+Class_Descriptor cd_ee34100 = { "ee34100", // class name
+ bases_ee34100, 4,
+ &(vtc_ee34100[0]), // expected_vtbl_contents
+ &(vtt_ee34100[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee34100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34100),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34100),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 ee44100 : dd4100 {
+ int e;
+ virtual void bar(); // _ZN7ee441003barEv
+ ~ee44100(); // tgen
+ ee44100(); // tgen
+};
+//SIG(1 ee44100) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee44100 ::bar(){vfunc_called(this, "_ZN7ee441003barEv");}
+ee44100 ::~ee44100(){ note_dtor("ee44100", this);} // tgen
+ee44100 ::ee44100(){ note_ctor("ee44100", this);} // tgen
+
+static void Test_ee44100()
+{
+ extern Class_Descriptor cd_ee44100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee44100, buf);
+ ee44100 *dp, &lv = *(dp=new (buf) ee44100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee44100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee44100");
+ check_base_class_offset(lv, (bb00*)(cc100*)(dd4100*), ABISELECT(20,16), "ee44100");
+ check_base_class_offset(lv, (cc100*)(dd4100*), 0, "ee44100");
+ check_base_class_offset(lv, (dd4100*), 0, "ee44100");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee44100.e");
+ test_class_info(&lv, &cd_ee44100);
+ dp->~ee44100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44100(Test_ee44100, "ee44100", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee44100C1Ev();
+extern void _ZN7ee44100D1Ev();
+Name_Map name_map_ee44100[] = {
+ NSPAIR(_ZN7ee44100C1Ev),
+ NSPAIR(_ZN7ee44100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd4100;
+extern VTBL_ENTRY _ZTI6dd4100[];
+extern VTBL_ENTRY _ZTV6dd4100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4100[];
+static Base_Class bases_ee44100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, 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
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee44100[];
+extern void _ZN7ee441003barEv();
+static VTBL_ENTRY vtc_ee44100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44100[0]),
+ (VTBL_ENTRY)&_ZN7ee441003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee44100[];
+extern void _ZN6dd41003barEv();
+static VTBL_ENTRY _tg__ZTV6dd4100__7ee44100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4100[0]),
+ (VTBL_ENTRY)&_ZN6dd41003barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1006dd4100__7ee44100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee44100[] = {
+ {&(_ZTV7ee44100[3]), 3,4},
+ {&(_tg__ZTV6dd4100__7ee44100[3]), 3,4},
+ {&(_tg__ZTV5cc1006dd4100__7ee44100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee44100[];
+extern VTBL_ENTRY _ZTV7ee44100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee44100[];
+Class_Descriptor cd_ee44100 = { "ee44100", // class name
+ bases_ee44100, 4,
+ &(vtc_ee44100[0]), // expected_vtbl_contents
+ &(vtt_ee44100[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee44100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44100),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee44100),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 ee54100 : virtual dd4100 {
+ int e;
+ virtual void bar(); // _ZN7ee541003barEv
+ ~ee54100(); // tgen
+ ee54100(); // tgen
+};
+//SIG(1 ee54100) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee54100 ::bar(){vfunc_called(this, "_ZN7ee541003barEv");}
+ee54100 ::~ee54100(){ note_dtor("ee54100", this);} // tgen
+ee54100 ::ee54100(){ note_ctor("ee54100", this);} // tgen
+
+static void Test_ee54100()
+{
+ extern Class_Descriptor cd_ee54100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee54100, buf);
+ ee54100 *dp, &lv = *(dp=new (buf) ee54100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee54100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee54100");
+ check_base_class_offset(lv, (bb00*)(cc100*)(dd4100*), ABISELECT(32,20), "ee54100");
+ check_base_class_offset(lv, (cc100*)(dd4100*), ABISELECT(16,8), "ee54100");
+ check_base_class_offset(lv, (dd4100*), ABISELECT(16,8), "ee54100");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54100.e");
+ test_class_info(&lv, &cd_ee54100);
+ dp->~ee54100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54100(Test_ee54100, "ee54100", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee54100C1Ev();
+extern void _ZN7ee54100D1Ev();
+Name_Map name_map_ee54100[] = {
+ NSPAIR(_ZN7ee54100C1Ev),
+ NSPAIR(_ZN7ee54100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd4100;
+extern VTBL_ENTRY _ZTI6dd4100[];
+extern VTBL_ENTRY _ZTV6dd4100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4100[];
+static Base_Class bases_ee54100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(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
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4100, 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 _ZTI7ee54100[];
+extern void _ZN7ee541003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee541003barEv,_ZTv0_n16_N7ee541003barEv)();
+extern void ABISELECT(_ZThn16_N7ee541003barEv,_ZThn8_N7ee541003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54100[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54100[0]),
+ (VTBL_ENTRY)&_ZN7ee541003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54100[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee541003barEv,_ZTv0_n16_N7ee541003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54100[];
+extern void _ZN6dd41003barEv();
+static VTBL_ENTRY _tg__ZTV6dd4100__7ee54100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4100[0]),
+ (VTBL_ENTRY)&_ZN6dd41003barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1006dd4100__7ee54100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee54100[] = {
+ {&(_ZTV7ee54100[4]), 4,10},
+ {&(_ZTV7ee54100[9]), 9,10},
+ {&(_tg__ZTV6dd4100__7ee54100[3]), 3,4},
+ {&(_tg__ZTV5cc1006dd4100__7ee54100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee54100[];
+extern VTBL_ENTRY _ZTV7ee54100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54100[];
+static VTBL_ENTRY alt_thunk_names19[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee541003barEv,_ZTv0_n16_N7ee541003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee541003barEv,_ZThn8_N7ee541003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54100 = { "ee54100", // class name
+ bases_ee54100, 4,
+ &(vtc_ee54100[0]), // expected_vtbl_contents
+ &(vtt_ee54100[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee54100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54100),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54100),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names19,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64100 : dd4100 {
+ int e;
+ virtual void foo(); // _ZN7ee641003fooEv
+ virtual void bar(); // _ZN7ee641003barEv
+ ~ee64100(); // tgen
+ ee64100(); // tgen
+};
+//SIG(1 ee64100) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64100 ::foo(){vfunc_called(this, "_ZN7ee641003fooEv");}
+void ee64100 ::bar(){vfunc_called(this, "_ZN7ee641003barEv");}
+ee64100 ::~ee64100(){ note_dtor("ee64100", this);} // tgen
+ee64100 ::ee64100(){ note_ctor("ee64100", this);} // tgen
+
+static void Test_ee64100()
+{
+ extern Class_Descriptor cd_ee64100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee64100, buf);
+ ee64100 *dp, &lv = *(dp=new (buf) ee64100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee64100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee64100");
+ check_base_class_offset(lv, (bb00*)(cc100*)(dd4100*), ABISELECT(20,16), "ee64100");
+ check_base_class_offset(lv, (cc100*)(dd4100*), 0, "ee64100");
+ check_base_class_offset(lv, (dd4100*), 0, "ee64100");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee64100.e");
+ test_class_info(&lv, &cd_ee64100);
+ dp->~ee64100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64100(Test_ee64100, "ee64100", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee64100C1Ev();
+extern void _ZN7ee64100D1Ev();
+Name_Map name_map_ee64100[] = {
+ NSPAIR(_ZN7ee64100C1Ev),
+ NSPAIR(_ZN7ee64100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd4100;
+extern VTBL_ENTRY _ZTI6dd4100[];
+extern VTBL_ENTRY _ZTV6dd4100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4100[];
+static Base_Class bases_ee64100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, 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
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee64100[];
+extern void _ZN7ee641003barEv();
+extern void _ZN7ee641003fooEv();
+static VTBL_ENTRY vtc_ee64100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64100[0]),
+ (VTBL_ENTRY)&_ZN7ee641003barEv,
+ (VTBL_ENTRY)&_ZN7ee641003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee64100[];
+extern void _ZN6dd41003barEv();
+static VTBL_ENTRY _tg__ZTV6dd4100__7ee64100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4100[0]),
+ (VTBL_ENTRY)&_ZN6dd41003barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1006dd4100__7ee64100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee64100[] = {
+ {&(_ZTV7ee64100[3]), 3,5},
+ {&(_tg__ZTV6dd4100__7ee64100[3]), 3,4},
+ {&(_tg__ZTV5cc1006dd4100__7ee64100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee64100[];
+extern VTBL_ENTRY _ZTV7ee64100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee64100[];
+Class_Descriptor cd_ee64100 = { "ee64100", // class name
+ bases_ee64100, 4,
+ &(vtc_ee64100[0]), // expected_vtbl_contents
+ &(vtt_ee64100[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee64100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64100),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee64100),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 ee74100 : virtual dd4100 {
+ int e;
+ virtual void foo(); // _ZN7ee741003fooEv
+ virtual void bar(); // _ZN7ee741003barEv
+ ~ee74100(); // tgen
+ ee74100(); // tgen
+};
+//SIG(1 ee74100) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74100 ::foo(){vfunc_called(this, "_ZN7ee741003fooEv");}
+void ee74100 ::bar(){vfunc_called(this, "_ZN7ee741003barEv");}
+ee74100 ::~ee74100(){ note_dtor("ee74100", this);} // tgen
+ee74100 ::ee74100(){ note_ctor("ee74100", this);} // tgen
+
+static void Test_ee74100()
+{
+ extern Class_Descriptor cd_ee74100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee74100, buf);
+ ee74100 *dp, &lv = *(dp=new (buf) ee74100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee74100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee74100");
+ check_base_class_offset(lv, (bb00*)(cc100*)(dd4100*), ABISELECT(32,20), "ee74100");
+ check_base_class_offset(lv, (cc100*)(dd4100*), ABISELECT(16,8), "ee74100");
+ check_base_class_offset(lv, (dd4100*), ABISELECT(16,8), "ee74100");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74100.e");
+ test_class_info(&lv, &cd_ee74100);
+ dp->~ee74100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74100(Test_ee74100, "ee74100", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee74100C1Ev();
+extern void _ZN7ee74100D1Ev();
+Name_Map name_map_ee74100[] = {
+ NSPAIR(_ZN7ee74100C1Ev),
+ NSPAIR(_ZN7ee74100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd4100;
+extern VTBL_ENTRY _ZTI6dd4100[];
+extern VTBL_ENTRY _ZTV6dd4100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4100[];
+static Base_Class bases_ee74100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(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
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4100, 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 _ZTI7ee74100[];
+extern void _ZN7ee741003fooEv();
+extern void _ZN7ee741003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee741003barEv,_ZTv0_n16_N7ee741003barEv)();
+extern void ABISELECT(_ZThn16_N7ee741003barEv,_ZThn8_N7ee741003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74100[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74100[0]),
+ (VTBL_ENTRY)&_ZN7ee741003fooEv,
+ (VTBL_ENTRY)&_ZN7ee741003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74100[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee741003barEv,_ZTv0_n16_N7ee741003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74100[];
+extern void _ZN6dd41003barEv();
+static VTBL_ENTRY _tg__ZTV6dd4100__7ee74100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4100[0]),
+ (VTBL_ENTRY)&_ZN6dd41003barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1006dd4100__7ee74100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee74100[] = {
+ {&(_ZTV7ee74100[4]), 4,11},
+ {&(_ZTV7ee74100[10]), 10,11},
+ {&(_tg__ZTV6dd4100__7ee74100[3]), 3,4},
+ {&(_tg__ZTV5cc1006dd4100__7ee74100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee74100[];
+extern VTBL_ENTRY _ZTV7ee74100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74100[];
+static VTBL_ENTRY alt_thunk_names20[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee741003barEv,_ZTv0_n16_N7ee741003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee741003barEv,_ZThn8_N7ee741003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74100 = { "ee74100", // class name
+ bases_ee74100, 4,
+ &(vtc_ee74100[0]), // expected_vtbl_contents
+ &(vtt_ee74100[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee74100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74100),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74100),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names20,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5100 : virtual cc100 {
+ int d;
+ virtual void bar(); // _ZN6dd51003barEv
+ ~dd5100(); // tgen
+ dd5100(); // tgen
+};
+//SIG(-1 dd5100) C1{ VBC2{ VBC3{ BC4{ Fi} Fi} Fi} v1 Fi}
+
+
+void dd5100 ::bar(){vfunc_called(this, "_ZN6dd51003barEv");}
+dd5100 ::~dd5100(){ note_dtor("dd5100", this);} // tgen
+dd5100 ::dd5100(){ note_ctor("dd5100", this);} // tgen
+
+static void Test_dd5100()
+{
+ extern Class_Descriptor cd_dd5100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd5100, buf);
+ dd5100 *dp, &lv = *(dp=new (buf) dd5100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd5100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,16), "dd5100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(28,16), "dd5100");
+ check_base_class_offset(lv, (cc100*), ABISELECT(16,8), "dd5100");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5100.d");
+ test_class_info(&lv, &cd_dd5100);
+ dp->~dd5100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5100(Test_dd5100, "dd5100", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd5100C1Ev();
+extern void _ZN6dd5100D1Ev();
+Name_Map name_map_dd5100[] = {
+ NSPAIR(_ZN6dd5100C1Ev),
+ NSPAIR(_ZN6dd5100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+static Base_Class bases_dd5100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd5100[];
+extern void _ZN6dd51003barEv();
+static VTBL_ENTRY vtc_dd5100[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5100[0]),
+ (VTBL_ENTRY)&_ZN6dd51003barEv,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5100[0]),
+};
+extern VTBL_ENTRY _ZTV6dd5100[];
+static VTBL_ENTRY _tg__ZTV5cc100__6dd5100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_dd5100[] = {
+ {&(_ZTV6dd5100[4]), 4,8},
+ {&(_ZTV6dd5100[8]), 8,8},
+ {&(_tg__ZTV5cc100__6dd5100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI6dd5100[];
+extern VTBL_ENTRY _ZTV6dd5100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5100[];
+Class_Descriptor cd_dd5100 = { "dd5100", // class name
+ bases_dd5100, 3,
+ &(vtc_dd5100[0]), // expected_vtbl_contents
+ &(vtt_dd5100[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd5100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5100),8, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5100),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 ee05100 : dd5100 {
+ int e;
+ ~ee05100(); // tgen
+ ee05100(); // tgen
+};
+//SIG(1 ee05100) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} Fi} v1 Fi} Fi}
+
+
+ee05100 ::~ee05100(){ note_dtor("ee05100", this);} // tgen
+ee05100 ::ee05100(){ note_ctor("ee05100", this);} // tgen
+
+static void Test_ee05100()
+{
+ extern Class_Descriptor cd_ee05100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee05100, buf);
+ ee05100 *dp, &lv = *(dp=new (buf) ee05100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee05100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee05100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(28,20), "ee05100");
+ check_base_class_offset(lv, (cc100*)(dd5100*), ABISELECT(16,12), "ee05100");
+ check_base_class_offset(lv, (dd5100*), 0, "ee05100");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05100.e");
+ test_class_info(&lv, &cd_ee05100);
+ dp->~ee05100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05100(Test_ee05100, "ee05100", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee05100C1Ev();
+extern void _ZN7ee05100D1Ev();
+Name_Map name_map_ee05100[] = {
+ NSPAIR(_ZN7ee05100C1Ev),
+ NSPAIR(_ZN7ee05100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd5100;
+extern VTBL_ENTRY _ZTI6dd5100[];
+extern VTBL_ENTRY _ZTV6dd5100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5100[];
+static Base_Class bases_ee05100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee05100[];
+extern void _ZN6dd51003barEv();
+static VTBL_ENTRY vtc_ee05100[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05100[0]),
+ (VTBL_ENTRY)&_ZN6dd51003barEv,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee05100[];
+extern void _ZN6dd51003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5100__7ee05100[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5100[0]),
+ (VTBL_ENTRY)&_ZN6dd51003barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc100__6dd5100__7ee05100[] = {
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__7ee05100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee05100[] = {
+ {&(_ZTV7ee05100[4]), 4,8},
+ {&(_tg__ZTV6dd5100__7ee05100[4]), 4,5},
+ {&(_tg__ZTV5cc100__6dd5100__7ee05100[3]), 3,3},
+ {&(_ZTV7ee05100[8]), 8,8},
+ {&(_tg__ZTV5cc100__7ee05100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee05100[];
+extern VTBL_ENTRY _ZTV7ee05100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05100[];
+Class_Descriptor cd_ee05100 = { "ee05100", // class name
+ bases_ee05100, 4,
+ &(vtc_ee05100[0]), // expected_vtbl_contents
+ &(vtt_ee05100[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee05100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05100),8, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05100),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 ee15100 : virtual dd5100 {
+ int e;
+ ~ee15100(); // tgen
+ ee15100(); // tgen
+};
+//SIG(1 ee15100) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} Fi} v1 Fi} Fi}
+
+
+ee15100 ::~ee15100(){ note_dtor("ee15100", this);} // tgen
+ee15100 ::ee15100(){ note_ctor("ee15100", this);} // tgen
+
+static void Test_ee15100()
+{
+ extern Class_Descriptor cd_ee15100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee15100, buf);
+ ee15100 *dp, &lv = *(dp=new (buf) ee15100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee15100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee15100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(44,24), "ee15100");
+ check_base_class_offset(lv, (cc100*)(dd5100*), ABISELECT(32,16), "ee15100");
+ check_base_class_offset(lv, (dd5100*), ABISELECT(16,8), "ee15100");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15100.e");
+ test_class_info(&lv, &cd_ee15100);
+ dp->~ee15100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15100(Test_ee15100, "ee15100", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee15100C1Ev();
+extern void _ZN7ee15100D1Ev();
+Name_Map name_map_ee15100[] = {
+ NSPAIR(_ZN7ee15100C1Ev),
+ NSPAIR(_ZN7ee15100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd5100;
+extern VTBL_ENTRY _ZTI6dd5100[];
+extern VTBL_ENTRY _ZTV6dd5100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5100[];
+static Base_Class bases_ee15100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, 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
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5100, 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 _ZTI7ee15100[];
+extern void _ZN6dd51003barEv();
+static VTBL_ENTRY vtc_ee15100[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15100[0]),
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15100[0]),
+ (VTBL_ENTRY)&_ZN6dd51003barEv,
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee15100[];
+extern void _ZN6dd51003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5100__7ee15100[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5100[0]),
+ (VTBL_ENTRY)&_ZN6dd51003barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc100__6dd5100__7ee15100[] = {
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__7ee15100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee15100[] = {
+ {&(_ZTV7ee15100[5]), 5,14},
+ {&(_ZTV7ee15100[10]), 10,14},
+ {&(_ZTV7ee15100[14]), 14,14},
+ {&(_tg__ZTV6dd5100__7ee15100[4]), 4,5},
+ {&(_tg__ZTV5cc100__6dd5100__7ee15100[3]), 3,3},
+ {&(_tg__ZTV5cc100__7ee15100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee15100[];
+extern VTBL_ENTRY _ZTV7ee15100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15100[];
+Class_Descriptor cd_ee15100 = { "ee15100", // class name
+ bases_ee15100, 4,
+ &(vtc_ee15100[0]), // expected_vtbl_contents
+ &(vtt_ee15100[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee15100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15100),14, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15100),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 ee25100 : dd5100 {
+ int e;
+ virtual void foo(); // _ZN7ee251003fooEv
+ ~ee25100(); // tgen
+ ee25100(); // tgen
+};
+//SIG(1 ee25100) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee25100 ::foo(){vfunc_called(this, "_ZN7ee251003fooEv");}
+ee25100 ::~ee25100(){ note_dtor("ee25100", this);} // tgen
+ee25100 ::ee25100(){ note_ctor("ee25100", this);} // tgen
+
+static void Test_ee25100()
+{
+ extern Class_Descriptor cd_ee25100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee25100, buf);
+ ee25100 *dp, &lv = *(dp=new (buf) ee25100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee25100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee25100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(28,20), "ee25100");
+ check_base_class_offset(lv, (cc100*)(dd5100*), ABISELECT(16,12), "ee25100");
+ check_base_class_offset(lv, (dd5100*), 0, "ee25100");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25100.e");
+ test_class_info(&lv, &cd_ee25100);
+ dp->~ee25100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25100(Test_ee25100, "ee25100", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee25100C1Ev();
+extern void _ZN7ee25100D1Ev();
+Name_Map name_map_ee25100[] = {
+ NSPAIR(_ZN7ee25100C1Ev),
+ NSPAIR(_ZN7ee25100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd5100;
+extern VTBL_ENTRY _ZTI6dd5100[];
+extern VTBL_ENTRY _ZTV6dd5100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5100[];
+static Base_Class bases_ee25100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee25100[];
+extern void _ZN6dd51003barEv();
+extern void _ZN7ee251003fooEv();
+static VTBL_ENTRY vtc_ee25100[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25100[0]),
+ (VTBL_ENTRY)&_ZN6dd51003barEv,
+ (VTBL_ENTRY)&_ZN7ee251003fooEv,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee25100[];
+extern void _ZN6dd51003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5100__7ee25100[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5100[0]),
+ (VTBL_ENTRY)&_ZN6dd51003barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc100__6dd5100__7ee25100[] = {
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__7ee25100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee25100[] = {
+ {&(_ZTV7ee25100[4]), 4,9},
+ {&(_tg__ZTV6dd5100__7ee25100[4]), 4,5},
+ {&(_tg__ZTV5cc100__6dd5100__7ee25100[3]), 3,3},
+ {&(_ZTV7ee25100[9]), 9,9},
+ {&(_tg__ZTV5cc100__7ee25100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee25100[];
+extern VTBL_ENTRY _ZTV7ee25100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25100[];
+Class_Descriptor cd_ee25100 = { "ee25100", // class name
+ bases_ee25100, 4,
+ &(vtc_ee25100[0]), // expected_vtbl_contents
+ &(vtt_ee25100[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee25100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25100),9, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25100),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 ee35100 : virtual dd5100 {
+ int e;
+ virtual void foo(); // _ZN7ee351003fooEv
+ ~ee35100(); // tgen
+ ee35100(); // tgen
+};
+//SIG(1 ee35100) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee35100 ::foo(){vfunc_called(this, "_ZN7ee351003fooEv");}
+ee35100 ::~ee35100(){ note_dtor("ee35100", this);} // tgen
+ee35100 ::ee35100(){ note_ctor("ee35100", this);} // tgen
+
+static void Test_ee35100()
+{
+ extern Class_Descriptor cd_ee35100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee35100, buf);
+ ee35100 *dp, &lv = *(dp=new (buf) ee35100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee35100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee35100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(44,24), "ee35100");
+ check_base_class_offset(lv, (cc100*)(dd5100*), ABISELECT(32,16), "ee35100");
+ check_base_class_offset(lv, (dd5100*), ABISELECT(16,8), "ee35100");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35100.e");
+ test_class_info(&lv, &cd_ee35100);
+ dp->~ee35100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35100(Test_ee35100, "ee35100", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee35100C1Ev();
+extern void _ZN7ee35100D1Ev();
+Name_Map name_map_ee35100[] = {
+ NSPAIR(_ZN7ee35100C1Ev),
+ NSPAIR(_ZN7ee35100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd5100;
+extern VTBL_ENTRY _ZTI6dd5100[];
+extern VTBL_ENTRY _ZTV6dd5100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5100[];
+static Base_Class bases_ee35100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5100, 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 _ZTI7ee35100[];
+extern void _ZN7ee351003fooEv();
+extern void _ZN6dd51003barEv();
+static VTBL_ENTRY vtc_ee35100[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35100[0]),
+ (VTBL_ENTRY)&_ZN7ee351003fooEv,
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35100[0]),
+ (VTBL_ENTRY)&_ZN6dd51003barEv,
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee35100[];
+extern void _ZN6dd51003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5100__7ee35100[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5100[0]),
+ (VTBL_ENTRY)&_ZN6dd51003barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc100__6dd5100__7ee35100[] = {
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__7ee35100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee35100[] = {
+ {&(_ZTV7ee35100[5]), 5,15},
+ {&(_ZTV7ee35100[11]), 11,15},
+ {&(_ZTV7ee35100[15]), 15,15},
+ {&(_tg__ZTV6dd5100__7ee35100[4]), 4,5},
+ {&(_tg__ZTV5cc100__6dd5100__7ee35100[3]), 3,3},
+ {&(_tg__ZTV5cc100__7ee35100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee35100[];
+extern VTBL_ENTRY _ZTV7ee35100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35100[];
+Class_Descriptor cd_ee35100 = { "ee35100", // class name
+ bases_ee35100, 4,
+ &(vtc_ee35100[0]), // expected_vtbl_contents
+ &(vtt_ee35100[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee35100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35100),15, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35100),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 ee45100 : dd5100 {
+ int e;
+ virtual void bar(); // _ZN7ee451003barEv
+ ~ee45100(); // tgen
+ ee45100(); // tgen
+};
+//SIG(1 ee45100) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee45100 ::bar(){vfunc_called(this, "_ZN7ee451003barEv");}
+ee45100 ::~ee45100(){ note_dtor("ee45100", this);} // tgen
+ee45100 ::ee45100(){ note_ctor("ee45100", this);} // tgen
+
+static void Test_ee45100()
+{
+ extern Class_Descriptor cd_ee45100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee45100, buf);
+ ee45100 *dp, &lv = *(dp=new (buf) ee45100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee45100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee45100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(28,20), "ee45100");
+ check_base_class_offset(lv, (cc100*)(dd5100*), ABISELECT(16,12), "ee45100");
+ check_base_class_offset(lv, (dd5100*), 0, "ee45100");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45100.e");
+ test_class_info(&lv, &cd_ee45100);
+ dp->~ee45100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45100(Test_ee45100, "ee45100", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee45100C1Ev();
+extern void _ZN7ee45100D1Ev();
+Name_Map name_map_ee45100[] = {
+ NSPAIR(_ZN7ee45100C1Ev),
+ NSPAIR(_ZN7ee45100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd5100;
+extern VTBL_ENTRY _ZTI6dd5100[];
+extern VTBL_ENTRY _ZTV6dd5100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5100[];
+static Base_Class bases_ee45100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee45100[];
+extern void _ZN7ee451003barEv();
+static VTBL_ENTRY vtc_ee45100[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45100[0]),
+ (VTBL_ENTRY)&_ZN7ee451003barEv,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee45100[];
+extern void _ZN6dd51003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5100__7ee45100[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5100[0]),
+ (VTBL_ENTRY)&_ZN6dd51003barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc100__6dd5100__7ee45100[] = {
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__7ee45100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee45100[] = {
+ {&(_ZTV7ee45100[4]), 4,8},
+ {&(_tg__ZTV6dd5100__7ee45100[4]), 4,5},
+ {&(_tg__ZTV5cc100__6dd5100__7ee45100[3]), 3,3},
+ {&(_ZTV7ee45100[8]), 8,8},
+ {&(_tg__ZTV5cc100__7ee45100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee45100[];
+extern VTBL_ENTRY _ZTV7ee45100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45100[];
+Class_Descriptor cd_ee45100 = { "ee45100", // class name
+ bases_ee45100, 4,
+ &(vtc_ee45100[0]), // expected_vtbl_contents
+ &(vtt_ee45100[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee45100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45100),8, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45100),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 ee55100 : virtual dd5100 {
+ int e;
+ virtual void bar(); // _ZN7ee551003barEv
+ ~ee55100(); // tgen
+ ee55100(); // tgen
+};
+//SIG(1 ee55100) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee55100 ::bar(){vfunc_called(this, "_ZN7ee551003barEv");}
+ee55100 ::~ee55100(){ note_dtor("ee55100", this);} // tgen
+ee55100 ::ee55100(){ note_ctor("ee55100", this);} // tgen
+
+static void Test_ee55100()
+{
+ extern Class_Descriptor cd_ee55100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee55100, buf);
+ ee55100 *dp, &lv = *(dp=new (buf) ee55100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee55100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee55100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(44,24), "ee55100");
+ check_base_class_offset(lv, (cc100*)(dd5100*), ABISELECT(32,16), "ee55100");
+ check_base_class_offset(lv, (dd5100*), ABISELECT(16,8), "ee55100");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55100.e");
+ test_class_info(&lv, &cd_ee55100);
+ dp->~ee55100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55100(Test_ee55100, "ee55100", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee55100C1Ev();
+extern void _ZN7ee55100D1Ev();
+Name_Map name_map_ee55100[] = {
+ NSPAIR(_ZN7ee55100C1Ev),
+ NSPAIR(_ZN7ee55100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd5100;
+extern VTBL_ENTRY _ZTI6dd5100[];
+extern VTBL_ENTRY _ZTV6dd5100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5100[];
+static Base_Class bases_ee55100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5100, 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 _ZTI7ee55100[];
+extern void _ZN7ee551003barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee551003barEv,_ZTv0_n20_N7ee551003barEv)();
+extern void ABISELECT(_ZThn16_N7ee551003barEv,_ZThn8_N7ee551003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55100[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55100[0]),
+ (VTBL_ENTRY)&_ZN7ee551003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55100[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee551003barEv,_ZTv0_n20_N7ee551003barEv),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee55100[];
+extern void _ZN6dd51003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5100__7ee55100[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5100[0]),
+ (VTBL_ENTRY)&_ZN6dd51003barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc100__6dd5100__7ee55100[] = {
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__7ee55100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee55100[] = {
+ {&(_ZTV7ee55100[5]), 5,15},
+ {&(_ZTV7ee55100[11]), 11,15},
+ {&(_ZTV7ee55100[15]), 15,15},
+ {&(_tg__ZTV6dd5100__7ee55100[4]), 4,5},
+ {&(_tg__ZTV5cc100__6dd5100__7ee55100[3]), 3,3},
+ {&(_tg__ZTV5cc100__7ee55100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee55100[];
+extern VTBL_ENTRY _ZTV7ee55100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55100[];
+static VTBL_ENTRY alt_thunk_names21[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee551003barEv,_ZTv0_n20_N7ee551003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee551003barEv,_ZThn8_N7ee551003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55100 = { "ee55100", // class name
+ bases_ee55100, 4,
+ &(vtc_ee55100[0]), // expected_vtbl_contents
+ &(vtt_ee55100[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee55100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55100),15, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55100),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names21,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65100 : dd5100 {
+ int e;
+ virtual void foo(); // _ZN7ee651003fooEv
+ virtual void bar(); // _ZN7ee651003barEv
+ ~ee65100(); // tgen
+ ee65100(); // tgen
+};
+//SIG(1 ee65100) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65100 ::foo(){vfunc_called(this, "_ZN7ee651003fooEv");}
+void ee65100 ::bar(){vfunc_called(this, "_ZN7ee651003barEv");}
+ee65100 ::~ee65100(){ note_dtor("ee65100", this);} // tgen
+ee65100 ::ee65100(){ note_ctor("ee65100", this);} // tgen
+
+static void Test_ee65100()
+{
+ extern Class_Descriptor cd_ee65100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee65100, buf);
+ ee65100 *dp, &lv = *(dp=new (buf) ee65100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee65100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee65100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(28,20), "ee65100");
+ check_base_class_offset(lv, (cc100*)(dd5100*), ABISELECT(16,12), "ee65100");
+ check_base_class_offset(lv, (dd5100*), 0, "ee65100");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65100.e");
+ test_class_info(&lv, &cd_ee65100);
+ dp->~ee65100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65100(Test_ee65100, "ee65100", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee65100C1Ev();
+extern void _ZN7ee65100D1Ev();
+Name_Map name_map_ee65100[] = {
+ NSPAIR(_ZN7ee65100C1Ev),
+ NSPAIR(_ZN7ee65100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd5100;
+extern VTBL_ENTRY _ZTI6dd5100[];
+extern VTBL_ENTRY _ZTV6dd5100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5100[];
+static Base_Class bases_ee65100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee65100[];
+extern void _ZN7ee651003barEv();
+extern void _ZN7ee651003fooEv();
+static VTBL_ENTRY vtc_ee65100[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65100[0]),
+ (VTBL_ENTRY)&_ZN7ee651003barEv,
+ (VTBL_ENTRY)&_ZN7ee651003fooEv,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee65100[];
+extern void _ZN6dd51003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5100__7ee65100[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5100[0]),
+ (VTBL_ENTRY)&_ZN6dd51003barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc100__6dd5100__7ee65100[] = {
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__7ee65100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee65100[] = {
+ {&(_ZTV7ee65100[4]), 4,9},
+ {&(_tg__ZTV6dd5100__7ee65100[4]), 4,5},
+ {&(_tg__ZTV5cc100__6dd5100__7ee65100[3]), 3,3},
+ {&(_ZTV7ee65100[9]), 9,9},
+ {&(_tg__ZTV5cc100__7ee65100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee65100[];
+extern VTBL_ENTRY _ZTV7ee65100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65100[];
+Class_Descriptor cd_ee65100 = { "ee65100", // class name
+ bases_ee65100, 4,
+ &(vtc_ee65100[0]), // expected_vtbl_contents
+ &(vtt_ee65100[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee65100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65100),9, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65100),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 ee75100 : virtual dd5100 {
+ int e;
+ virtual void foo(); // _ZN7ee751003fooEv
+ virtual void bar(); // _ZN7ee751003barEv
+ ~ee75100(); // tgen
+ ee75100(); // tgen
+};
+//SIG(1 ee75100) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75100 ::foo(){vfunc_called(this, "_ZN7ee751003fooEv");}
+void ee75100 ::bar(){vfunc_called(this, "_ZN7ee751003barEv");}
+ee75100 ::~ee75100(){ note_dtor("ee75100", this);} // tgen
+ee75100 ::ee75100(){ note_ctor("ee75100", this);} // tgen
+
+static void Test_ee75100()
+{
+ extern Class_Descriptor cd_ee75100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee75100, buf);
+ ee75100 *dp, &lv = *(dp=new (buf) ee75100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee75100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee75100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(44,24), "ee75100");
+ check_base_class_offset(lv, (cc100*)(dd5100*), ABISELECT(32,16), "ee75100");
+ check_base_class_offset(lv, (dd5100*), ABISELECT(16,8), "ee75100");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75100.e");
+ test_class_info(&lv, &cd_ee75100);
+ dp->~ee75100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75100(Test_ee75100, "ee75100", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee75100C1Ev();
+extern void _ZN7ee75100D1Ev();
+Name_Map name_map_ee75100[] = {
+ NSPAIR(_ZN7ee75100C1Ev),
+ NSPAIR(_ZN7ee75100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd5100;
+extern VTBL_ENTRY _ZTI6dd5100[];
+extern VTBL_ENTRY _ZTV6dd5100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5100[];
+static Base_Class bases_ee75100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5100, 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 _ZTI7ee75100[];
+extern void _ZN7ee751003fooEv();
+extern void _ZN7ee751003barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee751003barEv,_ZTv0_n20_N7ee751003barEv)();
+extern void ABISELECT(_ZThn16_N7ee751003barEv,_ZThn8_N7ee751003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75100[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75100[0]),
+ (VTBL_ENTRY)&_ZN7ee751003fooEv,
+ (VTBL_ENTRY)&_ZN7ee751003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75100[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee751003barEv,_ZTv0_n20_N7ee751003barEv),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee75100[];
+extern void _ZN6dd51003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5100__7ee75100[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5100[0]),
+ (VTBL_ENTRY)&_ZN6dd51003barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc100__6dd5100__7ee75100[] = {
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__7ee75100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee75100[] = {
+ {&(_ZTV7ee75100[5]), 5,16},
+ {&(_ZTV7ee75100[12]), 12,16},
+ {&(_ZTV7ee75100[16]), 16,16},
+ {&(_tg__ZTV6dd5100__7ee75100[4]), 4,5},
+ {&(_tg__ZTV5cc100__6dd5100__7ee75100[3]), 3,3},
+ {&(_tg__ZTV5cc100__7ee75100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee75100[];
+extern VTBL_ENTRY _ZTV7ee75100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75100[];
+static VTBL_ENTRY alt_thunk_names22[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee751003barEv,_ZTv0_n20_N7ee751003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee751003barEv,_ZThn8_N7ee751003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75100 = { "ee75100", // class name
+ bases_ee75100, 4,
+ &(vtc_ee75100[0]), // expected_vtbl_contents
+ &(vtt_ee75100[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee75100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75100),16, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75100),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names22,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6100 : cc100 {
+ int d;
+ virtual void bar(); // _ZN6dd61003barEv
+ virtual void foo(); // _ZN6dd61003fooEv
+ ~dd6100(); // tgen
+ dd6100(); // tgen
+};
+//SIG(-1 dd6100) C1{ BC2{ VBC3{ BC4{ Fi} Fi} Fi} v1 v2 Fi}
+
+
+void dd6100 ::bar(){vfunc_called(this, "_ZN6dd61003barEv");}
+void dd6100 ::foo(){vfunc_called(this, "_ZN6dd61003fooEv");}
+dd6100 ::~dd6100(){ note_dtor("dd6100", this);} // tgen
+dd6100 ::dd6100(){ note_ctor("dd6100", this);} // tgen
+
+static void Test_dd6100()
+{
+ extern Class_Descriptor cd_dd6100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd6100, buf);
+ dd6100 *dp, &lv = *(dp=new (buf) dd6100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd6100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(16,12), "dd6100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(16,12), "dd6100");
+ check_base_class_offset(lv, (cc100*), 0, "dd6100");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd6100.d");
+ test_class_info(&lv, &cd_dd6100);
+ dp->~dd6100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6100(Test_dd6100, "dd6100", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd6100C1Ev();
+extern void _ZN6dd6100D1Ev();
+Name_Map name_map_dd6100[] = {
+ NSPAIR(_ZN6dd6100C1Ev),
+ NSPAIR(_ZN6dd6100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+static Base_Class bases_dd6100[] = {
+ // 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, 0},
+ {&cd_bb00, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd6100[];
+extern void _ZN6dd61003barEv();
+extern void _ZN6dd61003fooEv();
+static VTBL_ENTRY vtc_dd6100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6100[0]),
+ (VTBL_ENTRY)&_ZN6dd61003barEv,
+ (VTBL_ENTRY)&_ZN6dd61003fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd6100[];
+static VTBL_ENTRY _tg__ZTV5cc100__6dd6100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_dd6100[] = {
+ {&(_ZTV6dd6100[3]), 3,5},
+ {&(_tg__ZTV5cc100__6dd6100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI6dd6100[];
+extern VTBL_ENTRY _ZTV6dd6100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6100[];
+Class_Descriptor cd_dd6100 = { "dd6100", // class name
+ bases_dd6100, 3,
+ &(vtc_dd6100[0]), // expected_vtbl_contents
+ &(vtt_dd6100[0]), // expected_vtt_contents
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd6100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6100),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd6100),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 ee06100 : dd6100 {
+ int e;
+ ~ee06100(); // tgen
+ ee06100(); // tgen
+};
+//SIG(1 ee06100) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee06100 ::~ee06100(){ note_dtor("ee06100", this);} // tgen
+ee06100 ::ee06100(){ note_ctor("ee06100", this);} // tgen
+
+static void Test_ee06100()
+{
+ extern Class_Descriptor cd_ee06100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee06100, buf);
+ ee06100 *dp, &lv = *(dp=new (buf) ee06100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee06100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee06100");
+ check_base_class_offset(lv, (bb00*)(cc100*)(dd6100*), ABISELECT(20,16), "ee06100");
+ check_base_class_offset(lv, (cc100*)(dd6100*), 0, "ee06100");
+ check_base_class_offset(lv, (dd6100*), 0, "ee06100");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee06100.e");
+ test_class_info(&lv, &cd_ee06100);
+ dp->~ee06100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06100(Test_ee06100, "ee06100", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee06100C1Ev();
+extern void _ZN7ee06100D1Ev();
+Name_Map name_map_ee06100[] = {
+ NSPAIR(_ZN7ee06100C1Ev),
+ NSPAIR(_ZN7ee06100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd6100;
+extern VTBL_ENTRY _ZTI6dd6100[];
+extern VTBL_ENTRY _ZTV6dd6100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6100[];
+static Base_Class bases_ee06100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, 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
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee06100[];
+extern void _ZN6dd61003barEv();
+extern void _ZN6dd61003fooEv();
+static VTBL_ENTRY vtc_ee06100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06100[0]),
+ (VTBL_ENTRY)&_ZN6dd61003barEv,
+ (VTBL_ENTRY)&_ZN6dd61003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee06100[];
+extern void _ZN6dd61003barEv();
+extern void _ZN6dd61003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6100__7ee06100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6100[0]),
+ (VTBL_ENTRY)&_ZN6dd61003barEv,
+ (VTBL_ENTRY)&_ZN6dd61003fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1006dd6100__7ee06100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee06100[] = {
+ {&(_ZTV7ee06100[3]), 3,5},
+ {&(_tg__ZTV6dd6100__7ee06100[3]), 3,5},
+ {&(_tg__ZTV5cc1006dd6100__7ee06100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee06100[];
+extern VTBL_ENTRY _ZTV7ee06100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee06100[];
+Class_Descriptor cd_ee06100 = { "ee06100", // class name
+ bases_ee06100, 4,
+ &(vtc_ee06100[0]), // expected_vtbl_contents
+ &(vtt_ee06100[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee06100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06100),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee06100),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 ee16100 : virtual dd6100 {
+ int e;
+ ~ee16100(); // tgen
+ ee16100(); // tgen
+};
+//SIG(1 ee16100) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee16100 ::~ee16100(){ note_dtor("ee16100", this);} // tgen
+ee16100 ::ee16100(){ note_ctor("ee16100", this);} // tgen
+
+static void Test_ee16100()
+{
+ extern Class_Descriptor cd_ee16100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee16100, buf);
+ ee16100 *dp, &lv = *(dp=new (buf) ee16100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee16100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee16100");
+ check_base_class_offset(lv, (bb00*)(cc100*)(dd6100*), ABISELECT(32,20), "ee16100");
+ check_base_class_offset(lv, (cc100*)(dd6100*), ABISELECT(16,8), "ee16100");
+ check_base_class_offset(lv, (dd6100*), ABISELECT(16,8), "ee16100");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16100.e");
+ test_class_info(&lv, &cd_ee16100);
+ dp->~ee16100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16100(Test_ee16100, "ee16100", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee16100C1Ev();
+extern void _ZN7ee16100D1Ev();
+Name_Map name_map_ee16100[] = {
+ NSPAIR(_ZN7ee16100C1Ev),
+ NSPAIR(_ZN7ee16100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd6100;
+extern VTBL_ENTRY _ZTI6dd6100[];
+extern VTBL_ENTRY _ZTV6dd6100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6100[];
+static Base_Class bases_ee16100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(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
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6100, 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 _ZTI7ee16100[];
+extern void _ZN6dd61003barEv();
+extern void _ZN6dd61003fooEv();
+static VTBL_ENTRY vtc_ee16100[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16100[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16100[0]),
+ (VTBL_ENTRY)&_ZN6dd61003barEv,
+ (VTBL_ENTRY)&_ZN6dd61003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee16100[];
+extern void _ZN6dd61003barEv();
+extern void _ZN6dd61003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6100__7ee16100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6100[0]),
+ (VTBL_ENTRY)&_ZN6dd61003barEv,
+ (VTBL_ENTRY)&_ZN6dd61003fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1006dd6100__7ee16100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee16100[] = {
+ {&(_ZTV7ee16100[4]), 4,11},
+ {&(_ZTV7ee16100[9]), 9,11},
+ {&(_tg__ZTV6dd6100__7ee16100[3]), 3,5},
+ {&(_tg__ZTV5cc1006dd6100__7ee16100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee16100[];
+extern VTBL_ENTRY _ZTV7ee16100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16100[];
+Class_Descriptor cd_ee16100 = { "ee16100", // class name
+ bases_ee16100, 4,
+ &(vtc_ee16100[0]), // expected_vtbl_contents
+ &(vtt_ee16100[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee16100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16100),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16100),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 ee26100 : dd6100 {
+ int e;
+ virtual void foo(); // _ZN7ee261003fooEv
+ ~ee26100(); // tgen
+ ee26100(); // tgen
+};
+//SIG(1 ee26100) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26100 ::foo(){vfunc_called(this, "_ZN7ee261003fooEv");}
+ee26100 ::~ee26100(){ note_dtor("ee26100", this);} // tgen
+ee26100 ::ee26100(){ note_ctor("ee26100", this);} // tgen
+
+static void Test_ee26100()
+{
+ extern Class_Descriptor cd_ee26100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee26100, buf);
+ ee26100 *dp, &lv = *(dp=new (buf) ee26100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee26100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee26100");
+ check_base_class_offset(lv, (bb00*)(cc100*)(dd6100*), ABISELECT(20,16), "ee26100");
+ check_base_class_offset(lv, (cc100*)(dd6100*), 0, "ee26100");
+ check_base_class_offset(lv, (dd6100*), 0, "ee26100");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee26100.e");
+ test_class_info(&lv, &cd_ee26100);
+ dp->~ee26100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26100(Test_ee26100, "ee26100", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee26100C1Ev();
+extern void _ZN7ee26100D1Ev();
+Name_Map name_map_ee26100[] = {
+ NSPAIR(_ZN7ee26100C1Ev),
+ NSPAIR(_ZN7ee26100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd6100;
+extern VTBL_ENTRY _ZTI6dd6100[];
+extern VTBL_ENTRY _ZTV6dd6100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6100[];
+static Base_Class bases_ee26100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, 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
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee26100[];
+extern void _ZN6dd61003barEv();
+extern void _ZN7ee261003fooEv();
+static VTBL_ENTRY vtc_ee26100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26100[0]),
+ (VTBL_ENTRY)&_ZN6dd61003barEv,
+ (VTBL_ENTRY)&_ZN7ee261003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee26100[];
+extern void _ZN6dd61003barEv();
+extern void _ZN6dd61003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6100__7ee26100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6100[0]),
+ (VTBL_ENTRY)&_ZN6dd61003barEv,
+ (VTBL_ENTRY)&_ZN6dd61003fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1006dd6100__7ee26100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee26100[] = {
+ {&(_ZTV7ee26100[3]), 3,5},
+ {&(_tg__ZTV6dd6100__7ee26100[3]), 3,5},
+ {&(_tg__ZTV5cc1006dd6100__7ee26100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee26100[];
+extern VTBL_ENTRY _ZTV7ee26100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee26100[];
+Class_Descriptor cd_ee26100 = { "ee26100", // class name
+ bases_ee26100, 4,
+ &(vtc_ee26100[0]), // expected_vtbl_contents
+ &(vtt_ee26100[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee26100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26100),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee26100),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 ee36100 : virtual dd6100 {
+ int e;
+ virtual void foo(); // _ZN7ee361003fooEv
+ ~ee36100(); // tgen
+ ee36100(); // tgen
+};
+//SIG(1 ee36100) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36100 ::foo(){vfunc_called(this, "_ZN7ee361003fooEv");}
+ee36100 ::~ee36100(){ note_dtor("ee36100", this);} // tgen
+ee36100 ::ee36100(){ note_ctor("ee36100", this);} // tgen
+
+static void Test_ee36100()
+{
+ extern Class_Descriptor cd_ee36100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee36100, buf);
+ ee36100 *dp, &lv = *(dp=new (buf) ee36100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee36100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee36100");
+ check_base_class_offset(lv, (bb00*)(cc100*)(dd6100*), ABISELECT(32,20), "ee36100");
+ check_base_class_offset(lv, (cc100*)(dd6100*), ABISELECT(16,8), "ee36100");
+ check_base_class_offset(lv, (dd6100*), ABISELECT(16,8), "ee36100");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36100.e");
+ test_class_info(&lv, &cd_ee36100);
+ dp->~ee36100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36100(Test_ee36100, "ee36100", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee36100C1Ev();
+extern void _ZN7ee36100D1Ev();
+Name_Map name_map_ee36100[] = {
+ NSPAIR(_ZN7ee36100C1Ev),
+ NSPAIR(_ZN7ee36100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd6100;
+extern VTBL_ENTRY _ZTI6dd6100[];
+extern VTBL_ENTRY _ZTV6dd6100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6100[];
+static Base_Class bases_ee36100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(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
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6100, 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 _ZTI7ee36100[];
+extern void _ZN7ee361003fooEv();
+extern void _ZN6dd61003barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee361003fooEv,_ZTv0_n20_N7ee361003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee361003fooEv,_ZThn8_N7ee361003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36100[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36100[0]),
+ (VTBL_ENTRY)&_ZN7ee361003fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36100[0]),
+ (VTBL_ENTRY)&_ZN6dd61003barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee361003fooEv,_ZTv0_n20_N7ee361003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee36100[];
+extern void _ZN6dd61003barEv();
+extern void _ZN6dd61003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6100__7ee36100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6100[0]),
+ (VTBL_ENTRY)&_ZN6dd61003barEv,
+ (VTBL_ENTRY)&_ZN6dd61003fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1006dd6100__7ee36100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee36100[] = {
+ {&(_ZTV7ee36100[4]), 4,12},
+ {&(_ZTV7ee36100[10]), 10,12},
+ {&(_tg__ZTV6dd6100__7ee36100[3]), 3,5},
+ {&(_tg__ZTV5cc1006dd6100__7ee36100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee36100[];
+extern VTBL_ENTRY _ZTV7ee36100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36100[];
+static VTBL_ENTRY alt_thunk_names23[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee361003fooEv,_ZTv0_n20_N7ee361003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee361003fooEv,_ZThn8_N7ee361003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36100 = { "ee36100", // class name
+ bases_ee36100, 4,
+ &(vtc_ee36100[0]), // expected_vtbl_contents
+ &(vtt_ee36100[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee36100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36100),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36100),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names23,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46100 : dd6100 {
+ int e;
+ virtual void bar(); // _ZN7ee461003barEv
+ ~ee46100(); // tgen
+ ee46100(); // tgen
+};
+//SIG(1 ee46100) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46100 ::bar(){vfunc_called(this, "_ZN7ee461003barEv");}
+ee46100 ::~ee46100(){ note_dtor("ee46100", this);} // tgen
+ee46100 ::ee46100(){ note_ctor("ee46100", this);} // tgen
+
+static void Test_ee46100()
+{
+ extern Class_Descriptor cd_ee46100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee46100, buf);
+ ee46100 *dp, &lv = *(dp=new (buf) ee46100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee46100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee46100");
+ check_base_class_offset(lv, (bb00*)(cc100*)(dd6100*), ABISELECT(20,16), "ee46100");
+ check_base_class_offset(lv, (cc100*)(dd6100*), 0, "ee46100");
+ check_base_class_offset(lv, (dd6100*), 0, "ee46100");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee46100.e");
+ test_class_info(&lv, &cd_ee46100);
+ dp->~ee46100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46100(Test_ee46100, "ee46100", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee46100C1Ev();
+extern void _ZN7ee46100D1Ev();
+Name_Map name_map_ee46100[] = {
+ NSPAIR(_ZN7ee46100C1Ev),
+ NSPAIR(_ZN7ee46100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd6100;
+extern VTBL_ENTRY _ZTI6dd6100[];
+extern VTBL_ENTRY _ZTV6dd6100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6100[];
+static Base_Class bases_ee46100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, 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
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee46100[];
+extern void _ZN7ee461003barEv();
+extern void _ZN6dd61003fooEv();
+static VTBL_ENTRY vtc_ee46100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46100[0]),
+ (VTBL_ENTRY)&_ZN7ee461003barEv,
+ (VTBL_ENTRY)&_ZN6dd61003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee46100[];
+extern void _ZN6dd61003barEv();
+extern void _ZN6dd61003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6100__7ee46100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6100[0]),
+ (VTBL_ENTRY)&_ZN6dd61003barEv,
+ (VTBL_ENTRY)&_ZN6dd61003fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1006dd6100__7ee46100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee46100[] = {
+ {&(_ZTV7ee46100[3]), 3,5},
+ {&(_tg__ZTV6dd6100__7ee46100[3]), 3,5},
+ {&(_tg__ZTV5cc1006dd6100__7ee46100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee46100[];
+extern VTBL_ENTRY _ZTV7ee46100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee46100[];
+Class_Descriptor cd_ee46100 = { "ee46100", // class name
+ bases_ee46100, 4,
+ &(vtc_ee46100[0]), // expected_vtbl_contents
+ &(vtt_ee46100[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee46100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46100),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee46100),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 ee56100 : virtual dd6100 {
+ int e;
+ virtual void bar(); // _ZN7ee561003barEv
+ ~ee56100(); // tgen
+ ee56100(); // tgen
+};
+//SIG(1 ee56100) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56100 ::bar(){vfunc_called(this, "_ZN7ee561003barEv");}
+ee56100 ::~ee56100(){ note_dtor("ee56100", this);} // tgen
+ee56100 ::ee56100(){ note_ctor("ee56100", this);} // tgen
+
+static void Test_ee56100()
+{
+ extern Class_Descriptor cd_ee56100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee56100, buf);
+ ee56100 *dp, &lv = *(dp=new (buf) ee56100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee56100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee56100");
+ check_base_class_offset(lv, (bb00*)(cc100*)(dd6100*), ABISELECT(32,20), "ee56100");
+ check_base_class_offset(lv, (cc100*)(dd6100*), ABISELECT(16,8), "ee56100");
+ check_base_class_offset(lv, (dd6100*), ABISELECT(16,8), "ee56100");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56100.e");
+ test_class_info(&lv, &cd_ee56100);
+ dp->~ee56100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56100(Test_ee56100, "ee56100", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee56100C1Ev();
+extern void _ZN7ee56100D1Ev();
+Name_Map name_map_ee56100[] = {
+ NSPAIR(_ZN7ee56100C1Ev),
+ NSPAIR(_ZN7ee56100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd6100;
+extern VTBL_ENTRY _ZTI6dd6100[];
+extern VTBL_ENTRY _ZTV6dd6100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6100[];
+static Base_Class bases_ee56100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(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
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6100, 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 _ZTI7ee56100[];
+extern void _ZN7ee561003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee561003barEv,_ZTv0_n16_N7ee561003barEv)();
+extern void ABISELECT(_ZThn16_N7ee561003barEv,_ZThn8_N7ee561003barEv)() __attribute__((weak));
+extern void _ZN6dd61003fooEv();
+static VTBL_ENTRY vtc_ee56100[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56100[0]),
+ (VTBL_ENTRY)&_ZN7ee561003barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56100[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee561003barEv,_ZTv0_n16_N7ee561003barEv),
+ (VTBL_ENTRY)&_ZN6dd61003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee56100[];
+extern void _ZN6dd61003barEv();
+extern void _ZN6dd61003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6100__7ee56100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6100[0]),
+ (VTBL_ENTRY)&_ZN6dd61003barEv,
+ (VTBL_ENTRY)&_ZN6dd61003fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1006dd6100__7ee56100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee56100[] = {
+ {&(_ZTV7ee56100[4]), 4,12},
+ {&(_ZTV7ee56100[10]), 10,12},
+ {&(_tg__ZTV6dd6100__7ee56100[3]), 3,5},
+ {&(_tg__ZTV5cc1006dd6100__7ee56100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee56100[];
+extern VTBL_ENTRY _ZTV7ee56100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56100[];
+static VTBL_ENTRY alt_thunk_names24[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee561003barEv,_ZTv0_n16_N7ee561003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee561003barEv,_ZThn8_N7ee561003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56100 = { "ee56100", // class name
+ bases_ee56100, 4,
+ &(vtc_ee56100[0]), // expected_vtbl_contents
+ &(vtt_ee56100[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee56100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56100),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56100),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names24,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66100 : dd6100 {
+ int e;
+ virtual void foo(); // _ZN7ee661003fooEv
+ virtual void bar(); // _ZN7ee661003barEv
+ ~ee66100(); // tgen
+ ee66100(); // tgen
+};
+//SIG(1 ee66100) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66100 ::foo(){vfunc_called(this, "_ZN7ee661003fooEv");}
+void ee66100 ::bar(){vfunc_called(this, "_ZN7ee661003barEv");}
+ee66100 ::~ee66100(){ note_dtor("ee66100", this);} // tgen
+ee66100 ::ee66100(){ note_ctor("ee66100", this);} // tgen
+
+static void Test_ee66100()
+{
+ extern Class_Descriptor cd_ee66100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee66100, buf);
+ ee66100 *dp, &lv = *(dp=new (buf) ee66100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee66100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee66100");
+ check_base_class_offset(lv, (bb00*)(cc100*)(dd6100*), ABISELECT(20,16), "ee66100");
+ check_base_class_offset(lv, (cc100*)(dd6100*), 0, "ee66100");
+ check_base_class_offset(lv, (dd6100*), 0, "ee66100");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee66100.e");
+ test_class_info(&lv, &cd_ee66100);
+ dp->~ee66100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66100(Test_ee66100, "ee66100", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee66100C1Ev();
+extern void _ZN7ee66100D1Ev();
+Name_Map name_map_ee66100[] = {
+ NSPAIR(_ZN7ee66100C1Ev),
+ NSPAIR(_ZN7ee66100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd6100;
+extern VTBL_ENTRY _ZTI6dd6100[];
+extern VTBL_ENTRY _ZTV6dd6100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6100[];
+static Base_Class bases_ee66100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, 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
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee66100[];
+extern void _ZN7ee661003barEv();
+extern void _ZN7ee661003fooEv();
+static VTBL_ENTRY vtc_ee66100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66100[0]),
+ (VTBL_ENTRY)&_ZN7ee661003barEv,
+ (VTBL_ENTRY)&_ZN7ee661003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee66100[];
+extern void _ZN6dd61003barEv();
+extern void _ZN6dd61003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6100__7ee66100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6100[0]),
+ (VTBL_ENTRY)&_ZN6dd61003barEv,
+ (VTBL_ENTRY)&_ZN6dd61003fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1006dd6100__7ee66100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee66100[] = {
+ {&(_ZTV7ee66100[3]), 3,5},
+ {&(_tg__ZTV6dd6100__7ee66100[3]), 3,5},
+ {&(_tg__ZTV5cc1006dd6100__7ee66100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee66100[];
+extern VTBL_ENTRY _ZTV7ee66100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee66100[];
+Class_Descriptor cd_ee66100 = { "ee66100", // class name
+ bases_ee66100, 4,
+ &(vtc_ee66100[0]), // expected_vtbl_contents
+ &(vtt_ee66100[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee66100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66100),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee66100),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 ee76100 : virtual dd6100 {
+ int e;
+ virtual void foo(); // _ZN7ee761003fooEv
+ virtual void bar(); // _ZN7ee761003barEv
+ ~ee76100(); // tgen
+ ee76100(); // tgen
+};
+//SIG(1 ee76100) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76100 ::foo(){vfunc_called(this, "_ZN7ee761003fooEv");}
+void ee76100 ::bar(){vfunc_called(this, "_ZN7ee761003barEv");}
+ee76100 ::~ee76100(){ note_dtor("ee76100", this);} // tgen
+ee76100 ::ee76100(){ note_ctor("ee76100", this);} // tgen
+
+static void Test_ee76100()
+{
+ extern Class_Descriptor cd_ee76100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee76100, buf);
+ ee76100 *dp, &lv = *(dp=new (buf) ee76100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee76100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee76100");
+ check_base_class_offset(lv, (bb00*)(cc100*)(dd6100*), ABISELECT(32,20), "ee76100");
+ check_base_class_offset(lv, (cc100*)(dd6100*), ABISELECT(16,8), "ee76100");
+ check_base_class_offset(lv, (dd6100*), ABISELECT(16,8), "ee76100");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76100.e");
+ test_class_info(&lv, &cd_ee76100);
+ dp->~ee76100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76100(Test_ee76100, "ee76100", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee76100C1Ev();
+extern void _ZN7ee76100D1Ev();
+Name_Map name_map_ee76100[] = {
+ NSPAIR(_ZN7ee76100C1Ev),
+ NSPAIR(_ZN7ee76100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd6100;
+extern VTBL_ENTRY _ZTI6dd6100[];
+extern VTBL_ENTRY _ZTV6dd6100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6100[];
+static Base_Class bases_ee76100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(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
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6100, 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 _ZTI7ee76100[];
+extern void _ZN7ee761003fooEv();
+extern void _ZN7ee761003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee761003barEv,_ZTv0_n16_N7ee761003barEv)();
+extern void ABISELECT(_ZThn16_N7ee761003barEv,_ZThn8_N7ee761003barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee761003fooEv,_ZTv0_n20_N7ee761003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee761003fooEv,_ZThn8_N7ee761003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76100[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76100[0]),
+ (VTBL_ENTRY)&_ZN7ee761003fooEv,
+ (VTBL_ENTRY)&_ZN7ee761003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76100[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee761003barEv,_ZTv0_n16_N7ee761003barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee761003fooEv,_ZTv0_n20_N7ee761003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee76100[];
+extern void _ZN6dd61003barEv();
+extern void _ZN6dd61003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6100__7ee76100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6100[0]),
+ (VTBL_ENTRY)&_ZN6dd61003barEv,
+ (VTBL_ENTRY)&_ZN6dd61003fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1006dd6100__7ee76100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee76100[] = {
+ {&(_ZTV7ee76100[4]), 4,13},
+ {&(_ZTV7ee76100[11]), 11,13},
+ {&(_tg__ZTV6dd6100__7ee76100[3]), 3,5},
+ {&(_tg__ZTV5cc1006dd6100__7ee76100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee76100[];
+extern VTBL_ENTRY _ZTV7ee76100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76100[];
+static VTBL_ENTRY alt_thunk_names25[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee761003fooEv,_ZTv0_n20_N7ee761003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee761003fooEv,_ZThn8_N7ee761003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee761003barEv,_ZTv0_n16_N7ee761003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee761003barEv,_ZThn8_N7ee761003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76100 = { "ee76100", // class name
+ bases_ee76100, 4,
+ &(vtc_ee76100[0]), // expected_vtbl_contents
+ &(vtt_ee76100[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee76100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76100),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76100),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names25,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7100 : virtual cc100 {
+ int d;
+ virtual void bar(); // _ZN6dd71003barEv
+ virtual void foo(); // _ZN6dd71003fooEv
+ ~dd7100(); // tgen
+ dd7100(); // tgen
+};
+//SIG(-1 dd7100) C1{ VBC2{ VBC3{ BC4{ Fi} Fi} Fi} v1 v2 Fi}
+
+
+void dd7100 ::bar(){vfunc_called(this, "_ZN6dd71003barEv");}
+void dd7100 ::foo(){vfunc_called(this, "_ZN6dd71003fooEv");}
+dd7100 ::~dd7100(){ note_dtor("dd7100", this);} // tgen
+dd7100 ::dd7100(){ note_ctor("dd7100", this);} // tgen
+
+static void Test_dd7100()
+{
+ extern Class_Descriptor cd_dd7100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd7100, buf);
+ dd7100 *dp, &lv = *(dp=new (buf) dd7100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd7100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,16), "dd7100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(28,16), "dd7100");
+ check_base_class_offset(lv, (cc100*), ABISELECT(16,8), "dd7100");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7100.d");
+ test_class_info(&lv, &cd_dd7100);
+ dp->~dd7100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7100(Test_dd7100, "dd7100", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd7100C1Ev();
+extern void _ZN6dd7100D1Ev();
+Name_Map name_map_dd7100[] = {
+ NSPAIR(_ZN6dd7100C1Ev),
+ NSPAIR(_ZN6dd7100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+static Base_Class bases_dd7100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd7100[];
+extern void _ZN6dd71003barEv();
+extern void _ZN6dd71003fooEv();
+static VTBL_ENTRY vtc_dd7100[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7100[0]),
+ (VTBL_ENTRY)&_ZN6dd71003barEv,
+ (VTBL_ENTRY)&_ZN6dd71003fooEv,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7100[0]),
+};
+extern VTBL_ENTRY _ZTV6dd7100[];
+static VTBL_ENTRY _tg__ZTV5cc100__6dd7100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_dd7100[] = {
+ {&(_ZTV6dd7100[4]), 4,9},
+ {&(_ZTV6dd7100[9]), 9,9},
+ {&(_tg__ZTV5cc100__6dd7100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI6dd7100[];
+extern VTBL_ENTRY _ZTV6dd7100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7100[];
+Class_Descriptor cd_dd7100 = { "dd7100", // class name
+ bases_dd7100, 3,
+ &(vtc_dd7100[0]), // expected_vtbl_contents
+ &(vtt_dd7100[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd7100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7100),9, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7100),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 ee07100 : dd7100 {
+ int e;
+ ~ee07100(); // tgen
+ ee07100(); // tgen
+};
+//SIG(1 ee07100) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee07100 ::~ee07100(){ note_dtor("ee07100", this);} // tgen
+ee07100 ::ee07100(){ note_ctor("ee07100", this);} // tgen
+
+static void Test_ee07100()
+{
+ extern Class_Descriptor cd_ee07100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee07100, buf);
+ ee07100 *dp, &lv = *(dp=new (buf) ee07100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee07100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee07100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(28,20), "ee07100");
+ check_base_class_offset(lv, (cc100*)(dd7100*), ABISELECT(16,12), "ee07100");
+ check_base_class_offset(lv, (dd7100*), 0, "ee07100");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07100.e");
+ test_class_info(&lv, &cd_ee07100);
+ dp->~ee07100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07100(Test_ee07100, "ee07100", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee07100C1Ev();
+extern void _ZN7ee07100D1Ev();
+Name_Map name_map_ee07100[] = {
+ NSPAIR(_ZN7ee07100C1Ev),
+ NSPAIR(_ZN7ee07100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd7100;
+extern VTBL_ENTRY _ZTI6dd7100[];
+extern VTBL_ENTRY _ZTV6dd7100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7100[];
+static Base_Class bases_ee07100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee07100[];
+extern void _ZN6dd71003barEv();
+extern void _ZN6dd71003fooEv();
+static VTBL_ENTRY vtc_ee07100[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07100[0]),
+ (VTBL_ENTRY)&_ZN6dd71003barEv,
+ (VTBL_ENTRY)&_ZN6dd71003fooEv,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee07100[];
+extern void _ZN6dd71003barEv();
+extern void _ZN6dd71003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7100__7ee07100[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7100[0]),
+ (VTBL_ENTRY)&_ZN6dd71003barEv,
+ (VTBL_ENTRY)&_ZN6dd71003fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc100__6dd7100__7ee07100[] = {
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__7ee07100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee07100[] = {
+ {&(_ZTV7ee07100[4]), 4,9},
+ {&(_tg__ZTV6dd7100__7ee07100[4]), 4,6},
+ {&(_tg__ZTV5cc100__6dd7100__7ee07100[3]), 3,3},
+ {&(_ZTV7ee07100[9]), 9,9},
+ {&(_tg__ZTV5cc100__7ee07100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee07100[];
+extern VTBL_ENTRY _ZTV7ee07100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07100[];
+Class_Descriptor cd_ee07100 = { "ee07100", // class name
+ bases_ee07100, 4,
+ &(vtc_ee07100[0]), // expected_vtbl_contents
+ &(vtt_ee07100[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee07100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07100),9, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07100),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 ee17100 : virtual dd7100 {
+ int e;
+ ~ee17100(); // tgen
+ ee17100(); // tgen
+};
+//SIG(1 ee17100) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee17100 ::~ee17100(){ note_dtor("ee17100", this);} // tgen
+ee17100 ::ee17100(){ note_ctor("ee17100", this);} // tgen
+
+static void Test_ee17100()
+{
+ extern Class_Descriptor cd_ee17100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee17100, buf);
+ ee17100 *dp, &lv = *(dp=new (buf) ee17100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee17100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee17100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(44,24), "ee17100");
+ check_base_class_offset(lv, (cc100*)(dd7100*), ABISELECT(32,16), "ee17100");
+ check_base_class_offset(lv, (dd7100*), ABISELECT(16,8), "ee17100");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17100.e");
+ test_class_info(&lv, &cd_ee17100);
+ dp->~ee17100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17100(Test_ee17100, "ee17100", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee17100C1Ev();
+extern void _ZN7ee17100D1Ev();
+Name_Map name_map_ee17100[] = {
+ NSPAIR(_ZN7ee17100C1Ev),
+ NSPAIR(_ZN7ee17100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd7100;
+extern VTBL_ENTRY _ZTI6dd7100[];
+extern VTBL_ENTRY _ZTV6dd7100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7100[];
+static Base_Class bases_ee17100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7100, 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 _ZTI7ee17100[];
+extern void _ZN6dd71003barEv();
+extern void _ZN6dd71003fooEv();
+static VTBL_ENTRY vtc_ee17100[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17100[0]),
+ 0,
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17100[0]),
+ (VTBL_ENTRY)&_ZN6dd71003barEv,
+ (VTBL_ENTRY)&_ZN6dd71003fooEv,
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee17100[];
+extern void _ZN6dd71003barEv();
+extern void _ZN6dd71003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7100__7ee17100[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7100[0]),
+ (VTBL_ENTRY)&_ZN6dd71003barEv,
+ (VTBL_ENTRY)&_ZN6dd71003fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc100__6dd7100__7ee17100[] = {
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__7ee17100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee17100[] = {
+ {&(_ZTV7ee17100[5]), 5,16},
+ {&(_ZTV7ee17100[11]), 11,16},
+ {&(_ZTV7ee17100[16]), 16,16},
+ {&(_tg__ZTV6dd7100__7ee17100[4]), 4,6},
+ {&(_tg__ZTV5cc100__6dd7100__7ee17100[3]), 3,3},
+ {&(_tg__ZTV5cc100__7ee17100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee17100[];
+extern VTBL_ENTRY _ZTV7ee17100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17100[];
+Class_Descriptor cd_ee17100 = { "ee17100", // class name
+ bases_ee17100, 4,
+ &(vtc_ee17100[0]), // expected_vtbl_contents
+ &(vtt_ee17100[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee17100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17100),16, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17100),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 ee27100 : dd7100 {
+ int e;
+ virtual void foo(); // _ZN7ee271003fooEv
+ ~ee27100(); // tgen
+ ee27100(); // tgen
+};
+//SIG(1 ee27100) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27100 ::foo(){vfunc_called(this, "_ZN7ee271003fooEv");}
+ee27100 ::~ee27100(){ note_dtor("ee27100", this);} // tgen
+ee27100 ::ee27100(){ note_ctor("ee27100", this);} // tgen
+
+static void Test_ee27100()
+{
+ extern Class_Descriptor cd_ee27100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee27100, buf);
+ ee27100 *dp, &lv = *(dp=new (buf) ee27100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee27100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee27100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(28,20), "ee27100");
+ check_base_class_offset(lv, (cc100*)(dd7100*), ABISELECT(16,12), "ee27100");
+ check_base_class_offset(lv, (dd7100*), 0, "ee27100");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27100.e");
+ test_class_info(&lv, &cd_ee27100);
+ dp->~ee27100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27100(Test_ee27100, "ee27100", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee27100C1Ev();
+extern void _ZN7ee27100D1Ev();
+Name_Map name_map_ee27100[] = {
+ NSPAIR(_ZN7ee27100C1Ev),
+ NSPAIR(_ZN7ee27100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd7100;
+extern VTBL_ENTRY _ZTI6dd7100[];
+extern VTBL_ENTRY _ZTV6dd7100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7100[];
+static Base_Class bases_ee27100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee27100[];
+extern void _ZN6dd71003barEv();
+extern void _ZN7ee271003fooEv();
+static VTBL_ENTRY vtc_ee27100[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27100[0]),
+ (VTBL_ENTRY)&_ZN6dd71003barEv,
+ (VTBL_ENTRY)&_ZN7ee271003fooEv,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee27100[];
+extern void _ZN6dd71003barEv();
+extern void _ZN6dd71003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7100__7ee27100[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7100[0]),
+ (VTBL_ENTRY)&_ZN6dd71003barEv,
+ (VTBL_ENTRY)&_ZN6dd71003fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc100__6dd7100__7ee27100[] = {
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__7ee27100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee27100[] = {
+ {&(_ZTV7ee27100[4]), 4,9},
+ {&(_tg__ZTV6dd7100__7ee27100[4]), 4,6},
+ {&(_tg__ZTV5cc100__6dd7100__7ee27100[3]), 3,3},
+ {&(_ZTV7ee27100[9]), 9,9},
+ {&(_tg__ZTV5cc100__7ee27100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee27100[];
+extern VTBL_ENTRY _ZTV7ee27100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27100[];
+Class_Descriptor cd_ee27100 = { "ee27100", // class name
+ bases_ee27100, 4,
+ &(vtc_ee27100[0]), // expected_vtbl_contents
+ &(vtt_ee27100[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee27100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27100),9, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27100),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 ee37100 : virtual dd7100 {
+ int e;
+ virtual void foo(); // _ZN7ee371003fooEv
+ ~ee37100(); // tgen
+ ee37100(); // tgen
+};
+//SIG(1 ee37100) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37100 ::foo(){vfunc_called(this, "_ZN7ee371003fooEv");}
+ee37100 ::~ee37100(){ note_dtor("ee37100", this);} // tgen
+ee37100 ::ee37100(){ note_ctor("ee37100", this);} // tgen
+
+static void Test_ee37100()
+{
+ extern Class_Descriptor cd_ee37100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee37100, buf);
+ ee37100 *dp, &lv = *(dp=new (buf) ee37100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee37100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee37100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(44,24), "ee37100");
+ check_base_class_offset(lv, (cc100*)(dd7100*), ABISELECT(32,16), "ee37100");
+ check_base_class_offset(lv, (dd7100*), ABISELECT(16,8), "ee37100");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37100.e");
+ test_class_info(&lv, &cd_ee37100);
+ dp->~ee37100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37100(Test_ee37100, "ee37100", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee37100C1Ev();
+extern void _ZN7ee37100D1Ev();
+Name_Map name_map_ee37100[] = {
+ NSPAIR(_ZN7ee37100C1Ev),
+ NSPAIR(_ZN7ee37100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd7100;
+extern VTBL_ENTRY _ZTI6dd7100[];
+extern VTBL_ENTRY _ZTV6dd7100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7100[];
+static Base_Class bases_ee37100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7100, 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 _ZTI7ee37100[];
+extern void _ZN7ee371003fooEv();
+extern void _ZN6dd71003barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee371003fooEv,_ZTv0_n24_N7ee371003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee371003fooEv,_ZThn8_N7ee371003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37100[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37100[0]),
+ (VTBL_ENTRY)&_ZN7ee371003fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37100[0]),
+ (VTBL_ENTRY)&_ZN6dd71003barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee371003fooEv,_ZTv0_n24_N7ee371003fooEv),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee37100[];
+extern void _ZN6dd71003barEv();
+extern void _ZN6dd71003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7100__7ee37100[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7100[0]),
+ (VTBL_ENTRY)&_ZN6dd71003barEv,
+ (VTBL_ENTRY)&_ZN6dd71003fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc100__6dd7100__7ee37100[] = {
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__7ee37100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee37100[] = {
+ {&(_ZTV7ee37100[5]), 5,17},
+ {&(_ZTV7ee37100[12]), 12,17},
+ {&(_ZTV7ee37100[17]), 17,17},
+ {&(_tg__ZTV6dd7100__7ee37100[4]), 4,6},
+ {&(_tg__ZTV5cc100__6dd7100__7ee37100[3]), 3,3},
+ {&(_tg__ZTV5cc100__7ee37100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee37100[];
+extern VTBL_ENTRY _ZTV7ee37100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37100[];
+static VTBL_ENTRY alt_thunk_names26[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee371003fooEv,_ZTv0_n24_N7ee371003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee371003fooEv,_ZThn8_N7ee371003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37100 = { "ee37100", // class name
+ bases_ee37100, 4,
+ &(vtc_ee37100[0]), // expected_vtbl_contents
+ &(vtt_ee37100[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee37100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37100),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37100),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names26,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47100 : dd7100 {
+ int e;
+ virtual void bar(); // _ZN7ee471003barEv
+ ~ee47100(); // tgen
+ ee47100(); // tgen
+};
+//SIG(1 ee47100) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47100 ::bar(){vfunc_called(this, "_ZN7ee471003barEv");}
+ee47100 ::~ee47100(){ note_dtor("ee47100", this);} // tgen
+ee47100 ::ee47100(){ note_ctor("ee47100", this);} // tgen
+
+static void Test_ee47100()
+{
+ extern Class_Descriptor cd_ee47100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee47100, buf);
+ ee47100 *dp, &lv = *(dp=new (buf) ee47100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee47100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee47100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(28,20), "ee47100");
+ check_base_class_offset(lv, (cc100*)(dd7100*), ABISELECT(16,12), "ee47100");
+ check_base_class_offset(lv, (dd7100*), 0, "ee47100");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47100.e");
+ test_class_info(&lv, &cd_ee47100);
+ dp->~ee47100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47100(Test_ee47100, "ee47100", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee47100C1Ev();
+extern void _ZN7ee47100D1Ev();
+Name_Map name_map_ee47100[] = {
+ NSPAIR(_ZN7ee47100C1Ev),
+ NSPAIR(_ZN7ee47100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd7100;
+extern VTBL_ENTRY _ZTI6dd7100[];
+extern VTBL_ENTRY _ZTV6dd7100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7100[];
+static Base_Class bases_ee47100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee47100[];
+extern void _ZN7ee471003barEv();
+extern void _ZN6dd71003fooEv();
+static VTBL_ENTRY vtc_ee47100[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47100[0]),
+ (VTBL_ENTRY)&_ZN7ee471003barEv,
+ (VTBL_ENTRY)&_ZN6dd71003fooEv,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee47100[];
+extern void _ZN6dd71003barEv();
+extern void _ZN6dd71003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7100__7ee47100[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7100[0]),
+ (VTBL_ENTRY)&_ZN6dd71003barEv,
+ (VTBL_ENTRY)&_ZN6dd71003fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc100__6dd7100__7ee47100[] = {
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__7ee47100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee47100[] = {
+ {&(_ZTV7ee47100[4]), 4,9},
+ {&(_tg__ZTV6dd7100__7ee47100[4]), 4,6},
+ {&(_tg__ZTV5cc100__6dd7100__7ee47100[3]), 3,3},
+ {&(_ZTV7ee47100[9]), 9,9},
+ {&(_tg__ZTV5cc100__7ee47100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee47100[];
+extern VTBL_ENTRY _ZTV7ee47100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47100[];
+Class_Descriptor cd_ee47100 = { "ee47100", // class name
+ bases_ee47100, 4,
+ &(vtc_ee47100[0]), // expected_vtbl_contents
+ &(vtt_ee47100[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee47100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47100),9, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47100),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 ee57100 : virtual dd7100 {
+ int e;
+ virtual void bar(); // _ZN7ee571003barEv
+ ~ee57100(); // tgen
+ ee57100(); // tgen
+};
+//SIG(1 ee57100) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57100 ::bar(){vfunc_called(this, "_ZN7ee571003barEv");}
+ee57100 ::~ee57100(){ note_dtor("ee57100", this);} // tgen
+ee57100 ::ee57100(){ note_ctor("ee57100", this);} // tgen
+
+static void Test_ee57100()
+{
+ extern Class_Descriptor cd_ee57100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee57100, buf);
+ ee57100 *dp, &lv = *(dp=new (buf) ee57100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee57100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee57100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(44,24), "ee57100");
+ check_base_class_offset(lv, (cc100*)(dd7100*), ABISELECT(32,16), "ee57100");
+ check_base_class_offset(lv, (dd7100*), ABISELECT(16,8), "ee57100");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57100.e");
+ test_class_info(&lv, &cd_ee57100);
+ dp->~ee57100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57100(Test_ee57100, "ee57100", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee57100C1Ev();
+extern void _ZN7ee57100D1Ev();
+Name_Map name_map_ee57100[] = {
+ NSPAIR(_ZN7ee57100C1Ev),
+ NSPAIR(_ZN7ee57100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd7100;
+extern VTBL_ENTRY _ZTI6dd7100[];
+extern VTBL_ENTRY _ZTV6dd7100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7100[];
+static Base_Class bases_ee57100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7100, 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 _ZTI7ee57100[];
+extern void _ZN7ee571003barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee571003barEv,_ZTv0_n20_N7ee571003barEv)();
+extern void ABISELECT(_ZThn16_N7ee571003barEv,_ZThn8_N7ee571003barEv)() __attribute__((weak));
+extern void _ZN6dd71003fooEv();
+static VTBL_ENTRY vtc_ee57100[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57100[0]),
+ (VTBL_ENTRY)&_ZN7ee571003barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57100[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee571003barEv,_ZTv0_n20_N7ee571003barEv),
+ (VTBL_ENTRY)&_ZN6dd71003fooEv,
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee57100[];
+extern void _ZN6dd71003barEv();
+extern void _ZN6dd71003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7100__7ee57100[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7100[0]),
+ (VTBL_ENTRY)&_ZN6dd71003barEv,
+ (VTBL_ENTRY)&_ZN6dd71003fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc100__6dd7100__7ee57100[] = {
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__7ee57100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee57100[] = {
+ {&(_ZTV7ee57100[5]), 5,17},
+ {&(_ZTV7ee57100[12]), 12,17},
+ {&(_ZTV7ee57100[17]), 17,17},
+ {&(_tg__ZTV6dd7100__7ee57100[4]), 4,6},
+ {&(_tg__ZTV5cc100__6dd7100__7ee57100[3]), 3,3},
+ {&(_tg__ZTV5cc100__7ee57100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee57100[];
+extern VTBL_ENTRY _ZTV7ee57100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57100[];
+static VTBL_ENTRY alt_thunk_names27[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee571003barEv,_ZTv0_n20_N7ee571003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee571003barEv,_ZThn8_N7ee571003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57100 = { "ee57100", // class name
+ bases_ee57100, 4,
+ &(vtc_ee57100[0]), // expected_vtbl_contents
+ &(vtt_ee57100[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee57100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57100),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57100),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names27,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67100 : dd7100 {
+ int e;
+ virtual void foo(); // _ZN7ee671003fooEv
+ virtual void bar(); // _ZN7ee671003barEv
+ ~ee67100(); // tgen
+ ee67100(); // tgen
+};
+//SIG(1 ee67100) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67100 ::foo(){vfunc_called(this, "_ZN7ee671003fooEv");}
+void ee67100 ::bar(){vfunc_called(this, "_ZN7ee671003barEv");}
+ee67100 ::~ee67100(){ note_dtor("ee67100", this);} // tgen
+ee67100 ::ee67100(){ note_ctor("ee67100", this);} // tgen
+
+static void Test_ee67100()
+{
+ extern Class_Descriptor cd_ee67100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee67100, buf);
+ ee67100 *dp, &lv = *(dp=new (buf) ee67100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee67100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee67100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(28,20), "ee67100");
+ check_base_class_offset(lv, (cc100*)(dd7100*), ABISELECT(16,12), "ee67100");
+ check_base_class_offset(lv, (dd7100*), 0, "ee67100");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67100.e");
+ test_class_info(&lv, &cd_ee67100);
+ dp->~ee67100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67100(Test_ee67100, "ee67100", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee67100C1Ev();
+extern void _ZN7ee67100D1Ev();
+Name_Map name_map_ee67100[] = {
+ NSPAIR(_ZN7ee67100C1Ev),
+ NSPAIR(_ZN7ee67100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd7100;
+extern VTBL_ENTRY _ZTI6dd7100[];
+extern VTBL_ENTRY _ZTV6dd7100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7100[];
+static Base_Class bases_ee67100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee67100[];
+extern void _ZN7ee671003barEv();
+extern void _ZN7ee671003fooEv();
+static VTBL_ENTRY vtc_ee67100[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67100[0]),
+ (VTBL_ENTRY)&_ZN7ee671003barEv,
+ (VTBL_ENTRY)&_ZN7ee671003fooEv,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee67100[];
+extern void _ZN6dd71003barEv();
+extern void _ZN6dd71003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7100__7ee67100[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7100[0]),
+ (VTBL_ENTRY)&_ZN6dd71003barEv,
+ (VTBL_ENTRY)&_ZN6dd71003fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc100__6dd7100__7ee67100[] = {
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__7ee67100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee67100[] = {
+ {&(_ZTV7ee67100[4]), 4,9},
+ {&(_tg__ZTV6dd7100__7ee67100[4]), 4,6},
+ {&(_tg__ZTV5cc100__6dd7100__7ee67100[3]), 3,3},
+ {&(_ZTV7ee67100[9]), 9,9},
+ {&(_tg__ZTV5cc100__7ee67100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee67100[];
+extern VTBL_ENTRY _ZTV7ee67100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67100[];
+Class_Descriptor cd_ee67100 = { "ee67100", // class name
+ bases_ee67100, 4,
+ &(vtc_ee67100[0]), // expected_vtbl_contents
+ &(vtt_ee67100[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee67100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67100),9, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67100),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 ee77100 : virtual dd7100 {
+ int e;
+ virtual void foo(); // _ZN7ee771003fooEv
+ virtual void bar(); // _ZN7ee771003barEv
+ ~ee77100(); // tgen
+ ee77100(); // tgen
+};
+//SIG(1 ee77100) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77100 ::foo(){vfunc_called(this, "_ZN7ee771003fooEv");}
+void ee77100 ::bar(){vfunc_called(this, "_ZN7ee771003barEv");}
+ee77100 ::~ee77100(){ note_dtor("ee77100", this);} // tgen
+ee77100 ::ee77100(){ note_ctor("ee77100", this);} // tgen
+
+static void Test_ee77100()
+{
+ extern Class_Descriptor cd_ee77100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee77100, buf);
+ ee77100 *dp, &lv = *(dp=new (buf) ee77100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee77100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee77100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(44,24), "ee77100");
+ check_base_class_offset(lv, (cc100*)(dd7100*), ABISELECT(32,16), "ee77100");
+ check_base_class_offset(lv, (dd7100*), ABISELECT(16,8), "ee77100");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77100.e");
+ test_class_info(&lv, &cd_ee77100);
+ dp->~ee77100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77100(Test_ee77100, "ee77100", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee77100C1Ev();
+extern void _ZN7ee77100D1Ev();
+Name_Map name_map_ee77100[] = {
+ NSPAIR(_ZN7ee77100C1Ev),
+ NSPAIR(_ZN7ee77100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd7100;
+extern VTBL_ENTRY _ZTI6dd7100[];
+extern VTBL_ENTRY _ZTV6dd7100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7100[];
+static Base_Class bases_ee77100[] = {
+ // 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, 0},
+ {&cd_bb00, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7100, 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 _ZTI7ee77100[];
+extern void _ZN7ee771003fooEv();
+extern void _ZN7ee771003barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee771003barEv,_ZTv0_n20_N7ee771003barEv)();
+extern void ABISELECT(_ZThn16_N7ee771003barEv,_ZThn8_N7ee771003barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee771003fooEv,_ZTv0_n24_N7ee771003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee771003fooEv,_ZThn8_N7ee771003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77100[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77100[0]),
+ (VTBL_ENTRY)&_ZN7ee771003fooEv,
+ (VTBL_ENTRY)&_ZN7ee771003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77100[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee771003barEv,_ZTv0_n20_N7ee771003barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee771003fooEv,_ZTv0_n24_N7ee771003fooEv),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee77100[];
+extern void _ZN6dd71003barEv();
+extern void _ZN6dd71003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7100__7ee77100[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7100[0]),
+ (VTBL_ENTRY)&_ZN6dd71003barEv,
+ (VTBL_ENTRY)&_ZN6dd71003fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc100__6dd7100__7ee77100[] = {
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__7ee77100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee77100[] = {
+ {&(_ZTV7ee77100[5]), 5,18},
+ {&(_ZTV7ee77100[13]), 13,18},
+ {&(_ZTV7ee77100[18]), 18,18},
+ {&(_tg__ZTV6dd7100__7ee77100[4]), 4,6},
+ {&(_tg__ZTV5cc100__6dd7100__7ee77100[3]), 3,3},
+ {&(_tg__ZTV5cc100__7ee77100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee77100[];
+extern VTBL_ENTRY _ZTV7ee77100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77100[];
+static VTBL_ENTRY alt_thunk_names28[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee771003fooEv,_ZTv0_n24_N7ee771003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee771003fooEv,_ZThn8_N7ee771003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee771003barEv,_ZTv0_n20_N7ee771003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee771003barEv,_ZThn8_N7ee771003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77100 = { "ee77100", // class name
+ bases_ee77100, 4,
+ &(vtc_ee77100[0]), // expected_vtbl_contents
+ &(vtt_ee77100[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee77100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77100),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77100),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names28,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc200 : bb00 {
+ int c;
+ virtual void foo(); // _ZN5cc2003fooEv
+ ~cc200(); // tgen
+ cc200(); // tgen
+};
+//SIG(-1 cc200) C1{ BC2{ BC3{ Fi} Fi} v1 Fi}
+
+
+void cc200 ::foo(){vfunc_called(this, "_ZN5cc2003fooEv");}
+cc200 ::~cc200(){ note_dtor("cc200", this);} // tgen
+cc200 ::cc200(){ note_ctor("cc200", this);} // tgen
+
+static void Test_cc200()
+{
+ extern Class_Descriptor cd_cc200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,5)];
+ init_test(&cd_cc200, buf);
+ cc200 *dp, &lv = *(dp=new (buf) cc200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,16), "sizeof(cc200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc200)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(8,4), "cc200");
+ check_base_class_offset(lv, (bb00*), ABISELECT(8,4), "cc200");
+ check_field_offset(lv, c, ABISELECT(16,12), "cc200.c");
+ test_class_info(&lv, &cd_cc200);
+ dp->~cc200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc200(Test_cc200, "cc200", ABISELECT(24,16));
+
+#else // __cplusplus
+
+extern void _ZN5cc200C1Ev();
+extern void _ZN5cc200D1Ev();
+Name_Map name_map_cc200[] = {
+ NSPAIR(_ZN5cc200C1Ev),
+ NSPAIR(_ZN5cc200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+static Base_Class bases_cc200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI5cc200[];
+extern void _ZN5cc2003fooEv();
+static VTBL_ENTRY vtc_cc200[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+};
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+Class_Descriptor cd_cc200 = { "cc200", // class name
+ bases_cc200, 2,
+ &(vtc_cc200[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,16), // object size
+ NSPAIRA(_ZTI5cc200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV5cc200),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd0200 : cc200 {
+ int d;
+ ~dd0200(); // tgen
+ dd0200(); // tgen
+};
+//SIG(-1 dd0200) C1{ BC2{ BC3{ BC4{ Fi} Fi} v1 Fi} Fi}
+
+
+dd0200 ::~dd0200(){ note_dtor("dd0200", this);} // tgen
+dd0200 ::dd0200(){ note_ctor("dd0200", this);} // tgen
+
+static void Test_dd0200()
+{
+ extern Class_Descriptor cd_dd0200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd0200, buf);
+ dd0200 *dp, &lv = *(dp=new (buf) dd0200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd0200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(8,4), "dd0200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(8,4), "dd0200");
+ check_base_class_offset(lv, (cc200*), 0, "dd0200");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd0200.d");
+ test_class_info(&lv, &cd_dd0200);
+ dp->~dd0200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0200(Test_dd0200, "dd0200", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd0200C1Ev();
+extern void _ZN6dd0200D1Ev();
+Name_Map name_map_dd0200[] = {
+ NSPAIR(_ZN6dd0200C1Ev),
+ NSPAIR(_ZN6dd0200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+static Base_Class bases_dd0200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd0200[];
+extern void _ZN5cc2003fooEv();
+static VTBL_ENTRY vtc_dd0200[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+};
+extern VTBL_ENTRY _ZTI6dd0200[];
+extern VTBL_ENTRY _ZTV6dd0200[];
+Class_Descriptor cd_dd0200 = { "dd0200", // class name
+ bases_dd0200, 3,
+ &(vtc_dd0200[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd0200),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0200),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 1, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee00200 : dd0200 {
+ int e;
+ ~ee00200(); // tgen
+ ee00200(); // tgen
+};
+//SIG(1 ee00200) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 Fi} Fi} Fi}
+
+
+ee00200 ::~ee00200(){ note_dtor("ee00200", this);} // tgen
+ee00200 ::ee00200(){ note_ctor("ee00200", this);} // tgen
+
+static void Test_ee00200()
+{
+ extern Class_Descriptor cd_ee00200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee00200, buf);
+ ee00200 *dp, &lv = *(dp=new (buf) ee00200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee00200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*)(dd0200*), ABISELECT(8,4), "ee00200");
+ check_base_class_offset(lv, (bb00*)(cc200*)(dd0200*), ABISELECT(8,4), "ee00200");
+ check_base_class_offset(lv, (cc200*)(dd0200*), 0, "ee00200");
+ check_base_class_offset(lv, (dd0200*), 0, "ee00200");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee00200.e");
+ test_class_info(&lv, &cd_ee00200);
+ dp->~ee00200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00200(Test_ee00200, "ee00200", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee00200C1Ev();
+extern void _ZN7ee00200D1Ev();
+Name_Map name_map_ee00200[] = {
+ NSPAIR(_ZN7ee00200C1Ev),
+ NSPAIR(_ZN7ee00200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd0200;
+extern VTBL_ENTRY _ZTI6dd0200[];
+extern VTBL_ENTRY _ZTV6dd0200[];
+static Base_Class bases_ee00200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00200[];
+extern void _ZN5cc2003fooEv();
+static VTBL_ENTRY vtc_ee00200[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee00200[];
+extern VTBL_ENTRY _ZTV7ee00200[];
+Class_Descriptor cd_ee00200 = { "ee00200", // class name
+ bases_ee00200, 4,
+ &(vtc_ee00200[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee00200),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00200),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee10200 : virtual dd0200 {
+ int e;
+ ~ee10200(); // tgen
+ ee10200(); // tgen
+};
+//SIG(1 ee10200) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 Fi} Fi} Fi}
+
+
+ee10200 ::~ee10200(){ note_dtor("ee10200", this);} // tgen
+ee10200 ::ee10200(){ note_ctor("ee10200", this);} // tgen
+
+static void Test_ee10200()
+{
+ extern Class_Descriptor cd_ee10200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee10200, buf);
+ ee10200 *dp, &lv = *(dp=new (buf) ee10200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee10200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*)(dd0200*), ABISELECT(24,12), "ee10200");
+ check_base_class_offset(lv, (bb00*)(cc200*)(dd0200*), ABISELECT(24,12), "ee10200");
+ check_base_class_offset(lv, (cc200*)(dd0200*), ABISELECT(16,8), "ee10200");
+ check_base_class_offset(lv, (dd0200*), ABISELECT(16,8), "ee10200");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10200.e");
+ test_class_info(&lv, &cd_ee10200);
+ dp->~ee10200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10200(Test_ee10200, "ee10200", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee10200C1Ev();
+extern void _ZN7ee10200D1Ev();
+Name_Map name_map_ee10200[] = {
+ NSPAIR(_ZN7ee10200C1Ev),
+ NSPAIR(_ZN7ee10200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd0200;
+extern VTBL_ENTRY _ZTI6dd0200[];
+extern VTBL_ENTRY _ZTV6dd0200[];
+static Base_Class bases_ee10200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0200, ABISELECT(16,8), //bcp->offset
+ -1, //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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee10200[];
+extern void _ZN5cc2003fooEv();
+static VTBL_ENTRY vtc_ee10200[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10200[0]),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee10200[];
+static VTT_ENTRY vtt_ee10200[] = {
+ {&(_ZTV7ee10200[3]), 3,7},
+ {&(_ZTV7ee10200[6]), 6,7},
+};
+extern VTBL_ENTRY _ZTI7ee10200[];
+extern VTBL_ENTRY _ZTV7ee10200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10200[];
+Class_Descriptor cd_ee10200 = { "ee10200", // class name
+ bases_ee10200, 4,
+ &(vtc_ee10200[0]), // expected_vtbl_contents
+ &(vtt_ee10200[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee10200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10200),7, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10200),2, //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 ee20200 : dd0200 {
+ int e;
+ virtual void foo(); // _ZN7ee202003fooEv
+ ~ee20200(); // tgen
+ ee20200(); // tgen
+};
+//SIG(1 ee20200) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee20200 ::foo(){vfunc_called(this, "_ZN7ee202003fooEv");}
+ee20200 ::~ee20200(){ note_dtor("ee20200", this);} // tgen
+ee20200 ::ee20200(){ note_ctor("ee20200", this);} // tgen
+
+static void Test_ee20200()
+{
+ extern Class_Descriptor cd_ee20200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee20200, buf);
+ ee20200 *dp, &lv = *(dp=new (buf) ee20200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee20200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*)(dd0200*), ABISELECT(8,4), "ee20200");
+ check_base_class_offset(lv, (bb00*)(cc200*)(dd0200*), ABISELECT(8,4), "ee20200");
+ check_base_class_offset(lv, (cc200*)(dd0200*), 0, "ee20200");
+ check_base_class_offset(lv, (dd0200*), 0, "ee20200");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee20200.e");
+ test_class_info(&lv, &cd_ee20200);
+ dp->~ee20200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20200(Test_ee20200, "ee20200", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee20200C1Ev();
+extern void _ZN7ee20200D1Ev();
+Name_Map name_map_ee20200[] = {
+ NSPAIR(_ZN7ee20200C1Ev),
+ NSPAIR(_ZN7ee20200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd0200;
+extern VTBL_ENTRY _ZTI6dd0200[];
+extern VTBL_ENTRY _ZTV6dd0200[];
+static Base_Class bases_ee20200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20200[];
+extern void _ZN7ee202003fooEv();
+static VTBL_ENTRY vtc_ee20200[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20200[0]),
+ (VTBL_ENTRY)&_ZN7ee202003fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee20200[];
+extern VTBL_ENTRY _ZTV7ee20200[];
+Class_Descriptor cd_ee20200 = { "ee20200", // class name
+ bases_ee20200, 4,
+ &(vtc_ee20200[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee20200),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20200),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee30200 : virtual dd0200 {
+ int e;
+ virtual void foo(); // _ZN7ee302003fooEv
+ ~ee30200(); // tgen
+ ee30200(); // tgen
+};
+//SIG(1 ee30200) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee30200 ::foo(){vfunc_called(this, "_ZN7ee302003fooEv");}
+ee30200 ::~ee30200(){ note_dtor("ee30200", this);} // tgen
+ee30200 ::ee30200(){ note_ctor("ee30200", this);} // tgen
+
+static void Test_ee30200()
+{
+ extern Class_Descriptor cd_ee30200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee30200, buf);
+ ee30200 *dp, &lv = *(dp=new (buf) ee30200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee30200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*)(dd0200*), ABISELECT(24,12), "ee30200");
+ check_base_class_offset(lv, (bb00*)(cc200*)(dd0200*), ABISELECT(24,12), "ee30200");
+ check_base_class_offset(lv, (cc200*)(dd0200*), ABISELECT(16,8), "ee30200");
+ check_base_class_offset(lv, (dd0200*), ABISELECT(16,8), "ee30200");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30200.e");
+ test_class_info(&lv, &cd_ee30200);
+ dp->~ee30200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30200(Test_ee30200, "ee30200", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee30200C1Ev();
+extern void _ZN7ee30200D1Ev();
+Name_Map name_map_ee30200[] = {
+ NSPAIR(_ZN7ee30200C1Ev),
+ NSPAIR(_ZN7ee30200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd0200;
+extern VTBL_ENTRY _ZTI6dd0200[];
+extern VTBL_ENTRY _ZTV6dd0200[];
+static Base_Class bases_ee30200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0200, ABISELECT(16,8), //bcp->offset
+ -1, //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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee30200[];
+extern void _ZN7ee302003fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee302003fooEv,_ZTv0_n12_N7ee302003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee302003fooEv,_ZThn8_N7ee302003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee30200[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30200[0]),
+ (VTBL_ENTRY)&_ZN7ee302003fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee302003fooEv,_ZTv0_n12_N7ee302003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee30200[];
+static VTT_ENTRY vtt_ee30200[] = {
+ {&(_ZTV7ee30200[3]), 3,8},
+ {&(_ZTV7ee30200[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee30200[];
+extern VTBL_ENTRY _ZTV7ee30200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30200[];
+static VTBL_ENTRY alt_thunk_names29[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee302003fooEv,_ZTv0_n12_N7ee302003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee302003fooEv,_ZThn8_N7ee302003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30200 = { "ee30200", // class name
+ bases_ee30200, 4,
+ &(vtc_ee30200[0]), // expected_vtbl_contents
+ &(vtt_ee30200[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee30200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30200),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30200),2, //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 ee40200 : dd0200 {
+ int e;
+ virtual void bar(); // _ZN7ee402003barEv
+ ~ee40200(); // tgen
+ ee40200(); // tgen
+};
+//SIG(1 ee40200) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee40200 ::bar(){vfunc_called(this, "_ZN7ee402003barEv");}
+ee40200 ::~ee40200(){ note_dtor("ee40200", this);} // tgen
+ee40200 ::ee40200(){ note_ctor("ee40200", this);} // tgen
+
+static void Test_ee40200()
+{
+ extern Class_Descriptor cd_ee40200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee40200, buf);
+ ee40200 *dp, &lv = *(dp=new (buf) ee40200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee40200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*)(dd0200*), ABISELECT(8,4), "ee40200");
+ check_base_class_offset(lv, (bb00*)(cc200*)(dd0200*), ABISELECT(8,4), "ee40200");
+ check_base_class_offset(lv, (cc200*)(dd0200*), 0, "ee40200");
+ check_base_class_offset(lv, (dd0200*), 0, "ee40200");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee40200.e");
+ test_class_info(&lv, &cd_ee40200);
+ dp->~ee40200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40200(Test_ee40200, "ee40200", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee40200C1Ev();
+extern void _ZN7ee40200D1Ev();
+Name_Map name_map_ee40200[] = {
+ NSPAIR(_ZN7ee40200C1Ev),
+ NSPAIR(_ZN7ee40200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd0200;
+extern VTBL_ENTRY _ZTI6dd0200[];
+extern VTBL_ENTRY _ZTV6dd0200[];
+static Base_Class bases_ee40200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40200[];
+extern void _ZN5cc2003fooEv();
+extern void _ZN7ee402003barEv();
+static VTBL_ENTRY vtc_ee40200[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+ (VTBL_ENTRY)&_ZN7ee402003barEv,
+};
+extern VTBL_ENTRY _ZTI7ee40200[];
+extern VTBL_ENTRY _ZTV7ee40200[];
+Class_Descriptor cd_ee40200 = { "ee40200", // class name
+ bases_ee40200, 4,
+ &(vtc_ee40200[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee40200),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40200),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee50200 : virtual dd0200 {
+ int e;
+ virtual void bar(); // _ZN7ee502003barEv
+ ~ee50200(); // tgen
+ ee50200(); // tgen
+};
+//SIG(1 ee50200) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee50200 ::bar(){vfunc_called(this, "_ZN7ee502003barEv");}
+ee50200 ::~ee50200(){ note_dtor("ee50200", this);} // tgen
+ee50200 ::ee50200(){ note_ctor("ee50200", this);} // tgen
+
+static void Test_ee50200()
+{
+ extern Class_Descriptor cd_ee50200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee50200, buf);
+ ee50200 *dp, &lv = *(dp=new (buf) ee50200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee50200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*)(dd0200*), ABISELECT(24,12), "ee50200");
+ check_base_class_offset(lv, (bb00*)(cc200*)(dd0200*), ABISELECT(24,12), "ee50200");
+ check_base_class_offset(lv, (cc200*)(dd0200*), ABISELECT(16,8), "ee50200");
+ check_base_class_offset(lv, (dd0200*), ABISELECT(16,8), "ee50200");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50200.e");
+ test_class_info(&lv, &cd_ee50200);
+ dp->~ee50200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50200(Test_ee50200, "ee50200", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee50200C1Ev();
+extern void _ZN7ee50200D1Ev();
+Name_Map name_map_ee50200[] = {
+ NSPAIR(_ZN7ee50200C1Ev),
+ NSPAIR(_ZN7ee50200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd0200;
+extern VTBL_ENTRY _ZTI6dd0200[];
+extern VTBL_ENTRY _ZTV6dd0200[];
+static Base_Class bases_ee50200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0200, ABISELECT(16,8), //bcp->offset
+ -1, //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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee50200[];
+extern void _ZN7ee502003barEv();
+extern void _ZN5cc2003fooEv();
+static VTBL_ENTRY vtc_ee50200[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50200[0]),
+ (VTBL_ENTRY)&_ZN7ee502003barEv,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee50200[];
+static VTT_ENTRY vtt_ee50200[] = {
+ {&(_ZTV7ee50200[3]), 3,8},
+ {&(_ZTV7ee50200[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee50200[];
+extern VTBL_ENTRY _ZTV7ee50200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50200[];
+Class_Descriptor cd_ee50200 = { "ee50200", // class name
+ bases_ee50200, 4,
+ &(vtc_ee50200[0]), // expected_vtbl_contents
+ &(vtt_ee50200[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee50200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50200),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50200),2, //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 ee60200 : dd0200 {
+ int e;
+ virtual void foo(); // _ZN7ee602003fooEv
+ virtual void bar(); // _ZN7ee602003barEv
+ ~ee60200(); // tgen
+ ee60200(); // tgen
+};
+//SIG(1 ee60200) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee60200 ::foo(){vfunc_called(this, "_ZN7ee602003fooEv");}
+void ee60200 ::bar(){vfunc_called(this, "_ZN7ee602003barEv");}
+ee60200 ::~ee60200(){ note_dtor("ee60200", this);} // tgen
+ee60200 ::ee60200(){ note_ctor("ee60200", this);} // tgen
+
+static void Test_ee60200()
+{
+ extern Class_Descriptor cd_ee60200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee60200, buf);
+ ee60200 *dp, &lv = *(dp=new (buf) ee60200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee60200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*)(dd0200*), ABISELECT(8,4), "ee60200");
+ check_base_class_offset(lv, (bb00*)(cc200*)(dd0200*), ABISELECT(8,4), "ee60200");
+ check_base_class_offset(lv, (cc200*)(dd0200*), 0, "ee60200");
+ check_base_class_offset(lv, (dd0200*), 0, "ee60200");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee60200.e");
+ test_class_info(&lv, &cd_ee60200);
+ dp->~ee60200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60200(Test_ee60200, "ee60200", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee60200C1Ev();
+extern void _ZN7ee60200D1Ev();
+Name_Map name_map_ee60200[] = {
+ NSPAIR(_ZN7ee60200C1Ev),
+ NSPAIR(_ZN7ee60200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd0200;
+extern VTBL_ENTRY _ZTI6dd0200[];
+extern VTBL_ENTRY _ZTV6dd0200[];
+static Base_Class bases_ee60200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60200[];
+extern void _ZN7ee602003fooEv();
+extern void _ZN7ee602003barEv();
+static VTBL_ENTRY vtc_ee60200[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60200[0]),
+ (VTBL_ENTRY)&_ZN7ee602003fooEv,
+ (VTBL_ENTRY)&_ZN7ee602003barEv,
+};
+extern VTBL_ENTRY _ZTI7ee60200[];
+extern VTBL_ENTRY _ZTV7ee60200[];
+Class_Descriptor cd_ee60200 = { "ee60200", // class name
+ bases_ee60200, 4,
+ &(vtc_ee60200[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee60200),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60200),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee70200 : virtual dd0200 {
+ int e;
+ virtual void foo(); // _ZN7ee702003fooEv
+ virtual void bar(); // _ZN7ee702003barEv
+ ~ee70200(); // tgen
+ ee70200(); // tgen
+};
+//SIG(1 ee70200) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee70200 ::foo(){vfunc_called(this, "_ZN7ee702003fooEv");}
+void ee70200 ::bar(){vfunc_called(this, "_ZN7ee702003barEv");}
+ee70200 ::~ee70200(){ note_dtor("ee70200", this);} // tgen
+ee70200 ::ee70200(){ note_ctor("ee70200", this);} // tgen
+
+static void Test_ee70200()
+{
+ extern Class_Descriptor cd_ee70200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee70200, buf);
+ ee70200 *dp, &lv = *(dp=new (buf) ee70200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee70200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*)(dd0200*), ABISELECT(24,12), "ee70200");
+ check_base_class_offset(lv, (bb00*)(cc200*)(dd0200*), ABISELECT(24,12), "ee70200");
+ check_base_class_offset(lv, (cc200*)(dd0200*), ABISELECT(16,8), "ee70200");
+ check_base_class_offset(lv, (dd0200*), ABISELECT(16,8), "ee70200");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70200.e");
+ test_class_info(&lv, &cd_ee70200);
+ dp->~ee70200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70200(Test_ee70200, "ee70200", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee70200C1Ev();
+extern void _ZN7ee70200D1Ev();
+Name_Map name_map_ee70200[] = {
+ NSPAIR(_ZN7ee70200C1Ev),
+ NSPAIR(_ZN7ee70200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd0200;
+extern VTBL_ENTRY _ZTI6dd0200[];
+extern VTBL_ENTRY _ZTV6dd0200[];
+static Base_Class bases_ee70200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0200, ABISELECT(16,8), //bcp->offset
+ -1, //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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee70200[];
+extern void _ZN7ee702003fooEv();
+extern void _ZN7ee702003barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee702003fooEv,_ZTv0_n12_N7ee702003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee702003fooEv,_ZThn8_N7ee702003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70200[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70200[0]),
+ (VTBL_ENTRY)&_ZN7ee702003fooEv,
+ (VTBL_ENTRY)&_ZN7ee702003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee702003fooEv,_ZTv0_n12_N7ee702003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee70200[];
+static VTT_ENTRY vtt_ee70200[] = {
+ {&(_ZTV7ee70200[3]), 3,9},
+ {&(_ZTV7ee70200[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee70200[];
+extern VTBL_ENTRY _ZTV7ee70200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70200[];
+static VTBL_ENTRY alt_thunk_names30[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee702003fooEv,_ZTv0_n12_N7ee702003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee702003fooEv,_ZThn8_N7ee702003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70200 = { "ee70200", // class name
+ bases_ee70200, 4,
+ &(vtc_ee70200[0]), // expected_vtbl_contents
+ &(vtt_ee70200[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee70200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70200),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70200),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names30,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1200 : virtual cc200 {
+ int d;
+ ~dd1200(); // tgen
+ dd1200(); // tgen
+};
+//SIG(-1 dd1200) C1{ VBC2{ BC3{ BC4{ Fi} Fi} v1 Fi} Fi}
+
+
+dd1200 ::~dd1200(){ note_dtor("dd1200", this);} // tgen
+dd1200 ::dd1200(){ note_ctor("dd1200", this);} // tgen
+
+static void Test_dd1200()
+{
+ extern Class_Descriptor cd_dd1200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd1200, buf);
+ dd1200 *dp, &lv = *(dp=new (buf) dd1200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd1200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(24,12), "dd1200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(24,12), "dd1200");
+ check_base_class_offset(lv, (cc200*), ABISELECT(16,8), "dd1200");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1200.d");
+ test_class_info(&lv, &cd_dd1200);
+ dp->~dd1200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1200(Test_dd1200, "dd1200", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd1200C1Ev();
+extern void _ZN6dd1200D1Ev();
+Name_Map name_map_dd1200[] = {
+ NSPAIR(_ZN6dd1200C1Ev),
+ NSPAIR(_ZN6dd1200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+static Base_Class bases_dd1200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(16,8), //bcp->offset
+ 3, //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 _ZTI6dd1200[];
+extern void _ZN5cc2003fooEv();
+static VTBL_ENTRY vtc_dd1200[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1200[0]),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd1200[];
+static VTT_ENTRY vtt_dd1200[] = {
+ {&(_ZTV6dd1200[3]), 3,7},
+ {&(_ZTV6dd1200[6]), 6,7},
+};
+extern VTBL_ENTRY _ZTI6dd1200[];
+extern VTBL_ENTRY _ZTV6dd1200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1200[];
+Class_Descriptor cd_dd1200 = { "dd1200", // class name
+ bases_dd1200, 3,
+ &(vtc_dd1200[0]), // expected_vtbl_contents
+ &(vtt_dd1200[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd1200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1200),7, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1200),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 ee01200 : dd1200 {
+ int e;
+ ~ee01200(); // tgen
+ ee01200(); // tgen
+};
+//SIG(1 ee01200) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 Fi} Fi} Fi}
+
+
+ee01200 ::~ee01200(){ note_dtor("ee01200", this);} // tgen
+ee01200 ::ee01200(){ note_ctor("ee01200", this);} // tgen
+
+static void Test_ee01200()
+{
+ extern Class_Descriptor cd_ee01200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee01200, buf);
+ ee01200 *dp, &lv = *(dp=new (buf) ee01200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee01200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(24,16), "ee01200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(24,16), "ee01200");
+ check_base_class_offset(lv, (cc200*)(dd1200*), ABISELECT(16,12), "ee01200");
+ check_base_class_offset(lv, (dd1200*), 0, "ee01200");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01200.e");
+ test_class_info(&lv, &cd_ee01200);
+ dp->~ee01200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01200(Test_ee01200, "ee01200", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee01200C1Ev();
+extern void _ZN7ee01200D1Ev();
+Name_Map name_map_ee01200[] = {
+ NSPAIR(_ZN7ee01200C1Ev),
+ NSPAIR(_ZN7ee01200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd1200;
+extern VTBL_ENTRY _ZTI6dd1200[];
+extern VTBL_ENTRY _ZTV6dd1200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1200[];
+static Base_Class bases_ee01200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(16,12), //bcp->offset
+ 3, //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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee01200[];
+extern void _ZN5cc2003fooEv();
+static VTBL_ENTRY vtc_ee01200[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01200[0]),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee01200[];
+static VTBL_ENTRY _tg__ZTV6dd1200__7ee01200[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1200[0]),
+};
+extern void _ZN5cc2003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc200__6dd1200__7ee01200[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+};
+static VTT_ENTRY vtt_ee01200[] = {
+ {&(_ZTV7ee01200[3]), 3,7},
+ {&(_tg__ZTV6dd1200__7ee01200[3]), 3,3},
+ {&(_tg__ZTV5cc200__6dd1200__7ee01200[3]), 3,4},
+ {&(_ZTV7ee01200[6]), 6,7},
+};
+extern VTBL_ENTRY _ZTI7ee01200[];
+extern VTBL_ENTRY _ZTV7ee01200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01200[];
+Class_Descriptor cd_ee01200 = { "ee01200", // class name
+ bases_ee01200, 4,
+ &(vtc_ee01200[0]), // expected_vtbl_contents
+ &(vtt_ee01200[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee01200),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01200),7, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01200),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 ee11200 : virtual dd1200 {
+ int e;
+ ~ee11200(); // tgen
+ ee11200(); // tgen
+};
+//SIG(1 ee11200) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 Fi} Fi} Fi}
+
+
+ee11200 ::~ee11200(){ note_dtor("ee11200", this);} // tgen
+ee11200 ::ee11200(){ note_ctor("ee11200", this);} // tgen
+
+static void Test_ee11200()
+{
+ extern Class_Descriptor cd_ee11200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee11200, buf);
+ ee11200 *dp, &lv = *(dp=new (buf) ee11200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee11200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(40,20), "ee11200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(40,20), "ee11200");
+ check_base_class_offset(lv, (cc200*)(dd1200*), ABISELECT(32,16), "ee11200");
+ check_base_class_offset(lv, (dd1200*), ABISELECT(16,8), "ee11200");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11200.e");
+ test_class_info(&lv, &cd_ee11200);
+ dp->~ee11200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11200(Test_ee11200, "ee11200", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee11200C1Ev();
+extern void _ZN7ee11200D1Ev();
+Name_Map name_map_ee11200[] = {
+ NSPAIR(_ZN7ee11200C1Ev),
+ NSPAIR(_ZN7ee11200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd1200;
+extern VTBL_ENTRY _ZTI6dd1200[];
+extern VTBL_ENTRY _ZTV6dd1200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1200[];
+static Base_Class bases_ee11200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,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, 0},
+ {&cd_bb00, ABISELECT(40,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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(32,16), //bcp->offset
+ 7, //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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1200, 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
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee11200[];
+extern void _ZN5cc2003fooEv();
+static VTBL_ENTRY vtc_ee11200[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11200[0]),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11200[0]),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee11200[];
+static VTBL_ENTRY _tg__ZTV6dd1200__7ee11200[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1200[0]),
+};
+extern void _ZN5cc2003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc200__6dd1200__7ee11200[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+};
+static VTT_ENTRY vtt_ee11200[] = {
+ {&(_ZTV7ee11200[4]), 4,11},
+ {&(_ZTV7ee11200[7]), 7,11},
+ {&(_ZTV7ee11200[10]), 10,11},
+ {&(_tg__ZTV6dd1200__7ee11200[3]), 3,3},
+ {&(_tg__ZTV5cc200__6dd1200__7ee11200[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee11200[];
+extern VTBL_ENTRY _ZTV7ee11200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11200[];
+Class_Descriptor cd_ee11200 = { "ee11200", // class name
+ bases_ee11200, 4,
+ &(vtc_ee11200[0]), // expected_vtbl_contents
+ &(vtt_ee11200[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee11200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11200),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11200),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 ee21200 : dd1200 {
+ int e;
+ virtual void foo(); // _ZN7ee212003fooEv
+ ~ee21200(); // tgen
+ ee21200(); // tgen
+};
+//SIG(1 ee21200) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee21200 ::foo(){vfunc_called(this, "_ZN7ee212003fooEv");}
+ee21200 ::~ee21200(){ note_dtor("ee21200", this);} // tgen
+ee21200 ::ee21200(){ note_ctor("ee21200", this);} // tgen
+
+static void Test_ee21200()
+{
+ extern Class_Descriptor cd_ee21200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee21200, buf);
+ ee21200 *dp, &lv = *(dp=new (buf) ee21200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee21200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(24,16), "ee21200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(24,16), "ee21200");
+ check_base_class_offset(lv, (cc200*)(dd1200*), ABISELECT(16,12), "ee21200");
+ check_base_class_offset(lv, (dd1200*), 0, "ee21200");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21200.e");
+ test_class_info(&lv, &cd_ee21200);
+ dp->~ee21200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21200(Test_ee21200, "ee21200", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee21200C1Ev();
+extern void _ZN7ee21200D1Ev();
+Name_Map name_map_ee21200[] = {
+ NSPAIR(_ZN7ee21200C1Ev),
+ NSPAIR(_ZN7ee21200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd1200;
+extern VTBL_ENTRY _ZTI6dd1200[];
+extern VTBL_ENTRY _ZTV6dd1200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1200[];
+static Base_Class bases_ee21200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee21200[];
+extern void _ZN7ee212003fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee212003fooEv,_ZTv0_n12_N7ee212003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee212003fooEv,_ZThn12_N7ee212003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee21200[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21200[0]),
+ (VTBL_ENTRY)&_ZN7ee212003fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee212003fooEv,_ZTv0_n12_N7ee212003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee21200[];
+static VTBL_ENTRY _tg__ZTV6dd1200__7ee21200[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1200[0]),
+};
+extern void _ZN5cc2003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc200__6dd1200__7ee21200[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+};
+static VTT_ENTRY vtt_ee21200[] = {
+ {&(_ZTV7ee21200[3]), 3,8},
+ {&(_tg__ZTV6dd1200__7ee21200[3]), 3,3},
+ {&(_tg__ZTV5cc200__6dd1200__7ee21200[3]), 3,4},
+ {&(_ZTV7ee21200[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee21200[];
+extern VTBL_ENTRY _ZTV7ee21200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21200[];
+static VTBL_ENTRY alt_thunk_names31[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee212003fooEv,_ZTv0_n12_N7ee212003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee212003fooEv,_ZThn12_N7ee212003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21200 = { "ee21200", // class name
+ bases_ee21200, 4,
+ &(vtc_ee21200[0]), // expected_vtbl_contents
+ &(vtt_ee21200[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee21200),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21200),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21200),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names31,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31200 : virtual dd1200 {
+ int e;
+ virtual void foo(); // _ZN7ee312003fooEv
+ ~ee31200(); // tgen
+ ee31200(); // tgen
+};
+//SIG(1 ee31200) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee31200 ::foo(){vfunc_called(this, "_ZN7ee312003fooEv");}
+ee31200 ::~ee31200(){ note_dtor("ee31200", this);} // tgen
+ee31200 ::ee31200(){ note_ctor("ee31200", this);} // tgen
+
+static void Test_ee31200()
+{
+ extern Class_Descriptor cd_ee31200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee31200, buf);
+ ee31200 *dp, &lv = *(dp=new (buf) ee31200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee31200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(40,20), "ee31200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(40,20), "ee31200");
+ check_base_class_offset(lv, (cc200*)(dd1200*), ABISELECT(32,16), "ee31200");
+ check_base_class_offset(lv, (dd1200*), ABISELECT(16,8), "ee31200");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31200.e");
+ test_class_info(&lv, &cd_ee31200);
+ dp->~ee31200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31200(Test_ee31200, "ee31200", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee31200C1Ev();
+extern void _ZN7ee31200D1Ev();
+Name_Map name_map_ee31200[] = {
+ NSPAIR(_ZN7ee31200C1Ev),
+ NSPAIR(_ZN7ee31200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd1200;
+extern VTBL_ENTRY _ZTI6dd1200[];
+extern VTBL_ENTRY _ZTV6dd1200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1200[];
+static Base_Class bases_ee31200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,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, 0},
+ {&cd_bb00, ABISELECT(40,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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(32,16), //bcp->offset
+ 8, //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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1200, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee31200[];
+extern void _ZN7ee312003fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee312003fooEv,_ZTv0_n12_N7ee312003fooEv)();
+extern void ABISELECT(_ZThn32_N7ee312003fooEv,_ZThn16_N7ee312003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee31200[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31200[0]),
+ (VTBL_ENTRY)&_ZN7ee312003fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31200[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee312003fooEv,_ZTv0_n12_N7ee312003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee31200[];
+static VTBL_ENTRY _tg__ZTV6dd1200__7ee31200[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1200[0]),
+};
+extern void _ZN5cc2003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc200__6dd1200__7ee31200[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+};
+static VTT_ENTRY vtt_ee31200[] = {
+ {&(_ZTV7ee31200[4]), 4,12},
+ {&(_ZTV7ee31200[8]), 8,12},
+ {&(_ZTV7ee31200[11]), 11,12},
+ {&(_tg__ZTV6dd1200__7ee31200[3]), 3,3},
+ {&(_tg__ZTV5cc200__6dd1200__7ee31200[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee31200[];
+extern VTBL_ENTRY _ZTV7ee31200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31200[];
+static VTBL_ENTRY alt_thunk_names32[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee312003fooEv,_ZTv0_n12_N7ee312003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee312003fooEv,_ZThn16_N7ee312003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31200 = { "ee31200", // class name
+ bases_ee31200, 4,
+ &(vtc_ee31200[0]), // expected_vtbl_contents
+ &(vtt_ee31200[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee31200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31200),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31200),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names32,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41200 : dd1200 {
+ int e;
+ virtual void bar(); // _ZN7ee412003barEv
+ ~ee41200(); // tgen
+ ee41200(); // tgen
+};
+//SIG(1 ee41200) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee41200 ::bar(){vfunc_called(this, "_ZN7ee412003barEv");}
+ee41200 ::~ee41200(){ note_dtor("ee41200", this);} // tgen
+ee41200 ::ee41200(){ note_ctor("ee41200", this);} // tgen
+
+static void Test_ee41200()
+{
+ extern Class_Descriptor cd_ee41200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee41200, buf);
+ ee41200 *dp, &lv = *(dp=new (buf) ee41200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee41200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(24,16), "ee41200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(24,16), "ee41200");
+ check_base_class_offset(lv, (cc200*)(dd1200*), ABISELECT(16,12), "ee41200");
+ check_base_class_offset(lv, (dd1200*), 0, "ee41200");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41200.e");
+ test_class_info(&lv, &cd_ee41200);
+ dp->~ee41200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41200(Test_ee41200, "ee41200", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee41200C1Ev();
+extern void _ZN7ee41200D1Ev();
+Name_Map name_map_ee41200[] = {
+ NSPAIR(_ZN7ee41200C1Ev),
+ NSPAIR(_ZN7ee41200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd1200;
+extern VTBL_ENTRY _ZTI6dd1200[];
+extern VTBL_ENTRY _ZTV6dd1200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1200[];
+static Base_Class bases_ee41200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee41200[];
+extern void _ZN7ee412003barEv();
+extern void _ZN5cc2003fooEv();
+static VTBL_ENTRY vtc_ee41200[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41200[0]),
+ (VTBL_ENTRY)&_ZN7ee412003barEv,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee41200[];
+static VTBL_ENTRY _tg__ZTV6dd1200__7ee41200[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1200[0]),
+};
+extern void _ZN5cc2003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc200__6dd1200__7ee41200[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+};
+static VTT_ENTRY vtt_ee41200[] = {
+ {&(_ZTV7ee41200[3]), 3,8},
+ {&(_tg__ZTV6dd1200__7ee41200[3]), 3,3},
+ {&(_tg__ZTV5cc200__6dd1200__7ee41200[3]), 3,4},
+ {&(_ZTV7ee41200[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee41200[];
+extern VTBL_ENTRY _ZTV7ee41200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41200[];
+Class_Descriptor cd_ee41200 = { "ee41200", // class name
+ bases_ee41200, 4,
+ &(vtc_ee41200[0]), // expected_vtbl_contents
+ &(vtt_ee41200[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee41200),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41200),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41200),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 ee51200 : virtual dd1200 {
+ int e;
+ virtual void bar(); // _ZN7ee512003barEv
+ ~ee51200(); // tgen
+ ee51200(); // tgen
+};
+//SIG(1 ee51200) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee51200 ::bar(){vfunc_called(this, "_ZN7ee512003barEv");}
+ee51200 ::~ee51200(){ note_dtor("ee51200", this);} // tgen
+ee51200 ::ee51200(){ note_ctor("ee51200", this);} // tgen
+
+static void Test_ee51200()
+{
+ extern Class_Descriptor cd_ee51200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee51200, buf);
+ ee51200 *dp, &lv = *(dp=new (buf) ee51200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee51200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(40,20), "ee51200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(40,20), "ee51200");
+ check_base_class_offset(lv, (cc200*)(dd1200*), ABISELECT(32,16), "ee51200");
+ check_base_class_offset(lv, (dd1200*), ABISELECT(16,8), "ee51200");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51200.e");
+ test_class_info(&lv, &cd_ee51200);
+ dp->~ee51200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51200(Test_ee51200, "ee51200", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee51200C1Ev();
+extern void _ZN7ee51200D1Ev();
+Name_Map name_map_ee51200[] = {
+ NSPAIR(_ZN7ee51200C1Ev),
+ NSPAIR(_ZN7ee51200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd1200;
+extern VTBL_ENTRY _ZTI6dd1200[];
+extern VTBL_ENTRY _ZTV6dd1200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1200[];
+static Base_Class bases_ee51200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,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, 0},
+ {&cd_bb00, ABISELECT(40,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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(32,16), //bcp->offset
+ 8, //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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1200, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee51200[];
+extern void _ZN7ee512003barEv();
+extern void _ZN5cc2003fooEv();
+static VTBL_ENTRY vtc_ee51200[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51200[0]),
+ (VTBL_ENTRY)&_ZN7ee512003barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51200[0]),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee51200[];
+static VTBL_ENTRY _tg__ZTV6dd1200__7ee51200[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1200[0]),
+};
+extern void _ZN5cc2003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc200__6dd1200__7ee51200[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+};
+static VTT_ENTRY vtt_ee51200[] = {
+ {&(_ZTV7ee51200[4]), 4,12},
+ {&(_ZTV7ee51200[8]), 8,12},
+ {&(_ZTV7ee51200[11]), 11,12},
+ {&(_tg__ZTV6dd1200__7ee51200[3]), 3,3},
+ {&(_tg__ZTV5cc200__6dd1200__7ee51200[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee51200[];
+extern VTBL_ENTRY _ZTV7ee51200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51200[];
+Class_Descriptor cd_ee51200 = { "ee51200", // class name
+ bases_ee51200, 4,
+ &(vtc_ee51200[0]), // expected_vtbl_contents
+ &(vtt_ee51200[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee51200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51200),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51200),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 ee61200 : dd1200 {
+ int e;
+ virtual void foo(); // _ZN7ee612003fooEv
+ virtual void bar(); // _ZN7ee612003barEv
+ ~ee61200(); // tgen
+ ee61200(); // tgen
+};
+//SIG(1 ee61200) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee61200 ::foo(){vfunc_called(this, "_ZN7ee612003fooEv");}
+void ee61200 ::bar(){vfunc_called(this, "_ZN7ee612003barEv");}
+ee61200 ::~ee61200(){ note_dtor("ee61200", this);} // tgen
+ee61200 ::ee61200(){ note_ctor("ee61200", this);} // tgen
+
+static void Test_ee61200()
+{
+ extern Class_Descriptor cd_ee61200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee61200, buf);
+ ee61200 *dp, &lv = *(dp=new (buf) ee61200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee61200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(24,16), "ee61200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(24,16), "ee61200");
+ check_base_class_offset(lv, (cc200*)(dd1200*), ABISELECT(16,12), "ee61200");
+ check_base_class_offset(lv, (dd1200*), 0, "ee61200");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61200.e");
+ test_class_info(&lv, &cd_ee61200);
+ dp->~ee61200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61200(Test_ee61200, "ee61200", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee61200C1Ev();
+extern void _ZN7ee61200D1Ev();
+Name_Map name_map_ee61200[] = {
+ NSPAIR(_ZN7ee61200C1Ev),
+ NSPAIR(_ZN7ee61200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd1200;
+extern VTBL_ENTRY _ZTI6dd1200[];
+extern VTBL_ENTRY _ZTV6dd1200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1200[];
+static Base_Class bases_ee61200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee61200[];
+extern void _ZN7ee612003fooEv();
+extern void _ZN7ee612003barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee612003fooEv,_ZTv0_n12_N7ee612003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee612003fooEv,_ZThn12_N7ee612003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61200[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61200[0]),
+ (VTBL_ENTRY)&_ZN7ee612003fooEv,
+ (VTBL_ENTRY)&_ZN7ee612003barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee612003fooEv,_ZTv0_n12_N7ee612003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee61200[];
+static VTBL_ENTRY _tg__ZTV6dd1200__7ee61200[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1200[0]),
+};
+extern void _ZN5cc2003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc200__6dd1200__7ee61200[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+};
+static VTT_ENTRY vtt_ee61200[] = {
+ {&(_ZTV7ee61200[3]), 3,9},
+ {&(_tg__ZTV6dd1200__7ee61200[3]), 3,3},
+ {&(_tg__ZTV5cc200__6dd1200__7ee61200[3]), 3,4},
+ {&(_ZTV7ee61200[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee61200[];
+extern VTBL_ENTRY _ZTV7ee61200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61200[];
+static VTBL_ENTRY alt_thunk_names33[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee612003fooEv,_ZTv0_n12_N7ee612003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee612003fooEv,_ZThn12_N7ee612003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61200 = { "ee61200", // class name
+ bases_ee61200, 4,
+ &(vtc_ee61200[0]), // expected_vtbl_contents
+ &(vtt_ee61200[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee61200),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61200),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61200),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names33,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71200 : virtual dd1200 {
+ int e;
+ virtual void foo(); // _ZN7ee712003fooEv
+ virtual void bar(); // _ZN7ee712003barEv
+ ~ee71200(); // tgen
+ ee71200(); // tgen
+};
+//SIG(1 ee71200) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee71200 ::foo(){vfunc_called(this, "_ZN7ee712003fooEv");}
+void ee71200 ::bar(){vfunc_called(this, "_ZN7ee712003barEv");}
+ee71200 ::~ee71200(){ note_dtor("ee71200", this);} // tgen
+ee71200 ::ee71200(){ note_ctor("ee71200", this);} // tgen
+
+static void Test_ee71200()
+{
+ extern Class_Descriptor cd_ee71200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee71200, buf);
+ ee71200 *dp, &lv = *(dp=new (buf) ee71200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee71200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(40,20), "ee71200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(40,20), "ee71200");
+ check_base_class_offset(lv, (cc200*)(dd1200*), ABISELECT(32,16), "ee71200");
+ check_base_class_offset(lv, (dd1200*), ABISELECT(16,8), "ee71200");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71200.e");
+ test_class_info(&lv, &cd_ee71200);
+ dp->~ee71200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71200(Test_ee71200, "ee71200", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee71200C1Ev();
+extern void _ZN7ee71200D1Ev();
+Name_Map name_map_ee71200[] = {
+ NSPAIR(_ZN7ee71200C1Ev),
+ NSPAIR(_ZN7ee71200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd1200;
+extern VTBL_ENTRY _ZTI6dd1200[];
+extern VTBL_ENTRY _ZTV6dd1200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1200[];
+static Base_Class bases_ee71200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,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, 0},
+ {&cd_bb00, ABISELECT(40,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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1200, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee71200[];
+extern void _ZN7ee712003fooEv();
+extern void _ZN7ee712003barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee712003fooEv,_ZTv0_n12_N7ee712003fooEv)();
+extern void ABISELECT(_ZThn32_N7ee712003fooEv,_ZThn16_N7ee712003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71200[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71200[0]),
+ (VTBL_ENTRY)&_ZN7ee712003fooEv,
+ (VTBL_ENTRY)&_ZN7ee712003barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71200[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee712003fooEv,_ZTv0_n12_N7ee712003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee71200[];
+static VTBL_ENTRY _tg__ZTV6dd1200__7ee71200[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1200[0]),
+};
+extern void _ZN5cc2003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc200__6dd1200__7ee71200[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+};
+static VTT_ENTRY vtt_ee71200[] = {
+ {&(_ZTV7ee71200[4]), 4,13},
+ {&(_ZTV7ee71200[9]), 9,13},
+ {&(_ZTV7ee71200[12]), 12,13},
+ {&(_tg__ZTV6dd1200__7ee71200[3]), 3,3},
+ {&(_tg__ZTV5cc200__6dd1200__7ee71200[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee71200[];
+extern VTBL_ENTRY _ZTV7ee71200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71200[];
+static VTBL_ENTRY alt_thunk_names34[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee712003fooEv,_ZTv0_n12_N7ee712003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee712003fooEv,_ZThn16_N7ee712003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71200 = { "ee71200", // class name
+ bases_ee71200, 4,
+ &(vtc_ee71200[0]), // expected_vtbl_contents
+ &(vtt_ee71200[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee71200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71200),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71200),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names34,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2200 : cc200 {
+ int d;
+ virtual void foo(); // _ZN6dd22003fooEv
+ ~dd2200(); // tgen
+ dd2200(); // tgen
+};
+//SIG(-1 dd2200) C1{ BC2{ BC3{ BC4{ Fi} Fi} v1 Fi} v1 Fi}
+
+
+void dd2200 ::foo(){vfunc_called(this, "_ZN6dd22003fooEv");}
+dd2200 ::~dd2200(){ note_dtor("dd2200", this);} // tgen
+dd2200 ::dd2200(){ note_ctor("dd2200", this);} // tgen
+
+static void Test_dd2200()
+{
+ extern Class_Descriptor cd_dd2200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd2200, buf);
+ dd2200 *dp, &lv = *(dp=new (buf) dd2200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd2200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(8,4), "dd2200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(8,4), "dd2200");
+ check_base_class_offset(lv, (cc200*), 0, "dd2200");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd2200.d");
+ test_class_info(&lv, &cd_dd2200);
+ dp->~dd2200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2200(Test_dd2200, "dd2200", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd2200C1Ev();
+extern void _ZN6dd2200D1Ev();
+Name_Map name_map_dd2200[] = {
+ NSPAIR(_ZN6dd2200C1Ev),
+ NSPAIR(_ZN6dd2200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+static Base_Class bases_dd2200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd2200[];
+extern void _ZN6dd22003fooEv();
+static VTBL_ENTRY vtc_dd2200[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2200[0]),
+ (VTBL_ENTRY)&_ZN6dd22003fooEv,
+};
+extern VTBL_ENTRY _ZTI6dd2200[];
+extern VTBL_ENTRY _ZTV6dd2200[];
+Class_Descriptor cd_dd2200 = { "dd2200", // class name
+ bases_dd2200, 3,
+ &(vtc_dd2200[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd2200),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2200),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 1, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02200 : dd2200 {
+ int e;
+ ~ee02200(); // tgen
+ ee02200(); // tgen
+};
+//SIG(1 ee02200) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee02200 ::~ee02200(){ note_dtor("ee02200", this);} // tgen
+ee02200 ::ee02200(){ note_ctor("ee02200", this);} // tgen
+
+static void Test_ee02200()
+{
+ extern Class_Descriptor cd_ee02200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee02200, buf);
+ ee02200 *dp, &lv = *(dp=new (buf) ee02200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee02200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*)(dd2200*), ABISELECT(8,4), "ee02200");
+ check_base_class_offset(lv, (bb00*)(cc200*)(dd2200*), ABISELECT(8,4), "ee02200");
+ check_base_class_offset(lv, (cc200*)(dd2200*), 0, "ee02200");
+ check_base_class_offset(lv, (dd2200*), 0, "ee02200");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee02200.e");
+ test_class_info(&lv, &cd_ee02200);
+ dp->~ee02200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02200(Test_ee02200, "ee02200", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee02200C1Ev();
+extern void _ZN7ee02200D1Ev();
+Name_Map name_map_ee02200[] = {
+ NSPAIR(_ZN7ee02200C1Ev),
+ NSPAIR(_ZN7ee02200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd2200;
+extern VTBL_ENTRY _ZTI6dd2200[];
+extern VTBL_ENTRY _ZTV6dd2200[];
+static Base_Class bases_ee02200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2200, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02200[];
+extern void _ZN6dd22003fooEv();
+static VTBL_ENTRY vtc_ee02200[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02200[0]),
+ (VTBL_ENTRY)&_ZN6dd22003fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee02200[];
+extern VTBL_ENTRY _ZTV7ee02200[];
+Class_Descriptor cd_ee02200 = { "ee02200", // class name
+ bases_ee02200, 4,
+ &(vtc_ee02200[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee02200),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02200),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee12200 : virtual dd2200 {
+ int e;
+ ~ee12200(); // tgen
+ ee12200(); // tgen
+};
+//SIG(1 ee12200) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee12200 ::~ee12200(){ note_dtor("ee12200", this);} // tgen
+ee12200 ::ee12200(){ note_ctor("ee12200", this);} // tgen
+
+static void Test_ee12200()
+{
+ extern Class_Descriptor cd_ee12200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee12200, buf);
+ ee12200 *dp, &lv = *(dp=new (buf) ee12200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee12200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*)(dd2200*), ABISELECT(24,12), "ee12200");
+ check_base_class_offset(lv, (bb00*)(cc200*)(dd2200*), ABISELECT(24,12), "ee12200");
+ check_base_class_offset(lv, (cc200*)(dd2200*), ABISELECT(16,8), "ee12200");
+ check_base_class_offset(lv, (dd2200*), ABISELECT(16,8), "ee12200");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12200.e");
+ test_class_info(&lv, &cd_ee12200);
+ dp->~ee12200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12200(Test_ee12200, "ee12200", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee12200C1Ev();
+extern void _ZN7ee12200D1Ev();
+Name_Map name_map_ee12200[] = {
+ NSPAIR(_ZN7ee12200C1Ev),
+ NSPAIR(_ZN7ee12200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd2200;
+extern VTBL_ENTRY _ZTI6dd2200[];
+extern VTBL_ENTRY _ZTV6dd2200[];
+static Base_Class bases_ee12200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2200, ABISELECT(16,8), //bcp->offset
+ 3, //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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee12200[];
+extern void _ZN6dd22003fooEv();
+static VTBL_ENTRY vtc_ee12200[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12200[0]),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12200[0]),
+ (VTBL_ENTRY)&_ZN6dd22003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee12200[];
+static VTT_ENTRY vtt_ee12200[] = {
+ {&(_ZTV7ee12200[3]), 3,7},
+ {&(_ZTV7ee12200[6]), 6,7},
+};
+extern VTBL_ENTRY _ZTI7ee12200[];
+extern VTBL_ENTRY _ZTV7ee12200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12200[];
+Class_Descriptor cd_ee12200 = { "ee12200", // class name
+ bases_ee12200, 4,
+ &(vtc_ee12200[0]), // expected_vtbl_contents
+ &(vtt_ee12200[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee12200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12200),7, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12200),2, //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 ee22200 : dd2200 {
+ int e;
+ virtual void foo(); // _ZN7ee222003fooEv
+ ~ee22200(); // tgen
+ ee22200(); // tgen
+};
+//SIG(1 ee22200) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee22200 ::foo(){vfunc_called(this, "_ZN7ee222003fooEv");}
+ee22200 ::~ee22200(){ note_dtor("ee22200", this);} // tgen
+ee22200 ::ee22200(){ note_ctor("ee22200", this);} // tgen
+
+static void Test_ee22200()
+{
+ extern Class_Descriptor cd_ee22200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee22200, buf);
+ ee22200 *dp, &lv = *(dp=new (buf) ee22200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee22200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*)(dd2200*), ABISELECT(8,4), "ee22200");
+ check_base_class_offset(lv, (bb00*)(cc200*)(dd2200*), ABISELECT(8,4), "ee22200");
+ check_base_class_offset(lv, (cc200*)(dd2200*), 0, "ee22200");
+ check_base_class_offset(lv, (dd2200*), 0, "ee22200");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee22200.e");
+ test_class_info(&lv, &cd_ee22200);
+ dp->~ee22200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22200(Test_ee22200, "ee22200", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee22200C1Ev();
+extern void _ZN7ee22200D1Ev();
+Name_Map name_map_ee22200[] = {
+ NSPAIR(_ZN7ee22200C1Ev),
+ NSPAIR(_ZN7ee22200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd2200;
+extern VTBL_ENTRY _ZTI6dd2200[];
+extern VTBL_ENTRY _ZTV6dd2200[];
+static Base_Class bases_ee22200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22200[];
+extern void _ZN7ee222003fooEv();
+static VTBL_ENTRY vtc_ee22200[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22200[0]),
+ (VTBL_ENTRY)&_ZN7ee222003fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee22200[];
+extern VTBL_ENTRY _ZTV7ee22200[];
+Class_Descriptor cd_ee22200 = { "ee22200", // class name
+ bases_ee22200, 4,
+ &(vtc_ee22200[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee22200),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22200),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee32200 : virtual dd2200 {
+ int e;
+ virtual void foo(); // _ZN7ee322003fooEv
+ ~ee32200(); // tgen
+ ee32200(); // tgen
+};
+//SIG(1 ee32200) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee32200 ::foo(){vfunc_called(this, "_ZN7ee322003fooEv");}
+ee32200 ::~ee32200(){ note_dtor("ee32200", this);} // tgen
+ee32200 ::ee32200(){ note_ctor("ee32200", this);} // tgen
+
+static void Test_ee32200()
+{
+ extern Class_Descriptor cd_ee32200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee32200, buf);
+ ee32200 *dp, &lv = *(dp=new (buf) ee32200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee32200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*)(dd2200*), ABISELECT(24,12), "ee32200");
+ check_base_class_offset(lv, (bb00*)(cc200*)(dd2200*), ABISELECT(24,12), "ee32200");
+ check_base_class_offset(lv, (cc200*)(dd2200*), ABISELECT(16,8), "ee32200");
+ check_base_class_offset(lv, (dd2200*), ABISELECT(16,8), "ee32200");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32200.e");
+ test_class_info(&lv, &cd_ee32200);
+ dp->~ee32200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32200(Test_ee32200, "ee32200", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee32200C1Ev();
+extern void _ZN7ee32200D1Ev();
+Name_Map name_map_ee32200[] = {
+ NSPAIR(_ZN7ee32200C1Ev),
+ NSPAIR(_ZN7ee32200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd2200;
+extern VTBL_ENTRY _ZTI6dd2200[];
+extern VTBL_ENTRY _ZTV6dd2200[];
+static Base_Class bases_ee32200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2200, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee32200[];
+extern void _ZN7ee322003fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee322003fooEv,_ZTv0_n12_N7ee322003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee322003fooEv,_ZThn8_N7ee322003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32200[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32200[0]),
+ (VTBL_ENTRY)&_ZN7ee322003fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee322003fooEv,_ZTv0_n12_N7ee322003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee32200[];
+static VTT_ENTRY vtt_ee32200[] = {
+ {&(_ZTV7ee32200[3]), 3,8},
+ {&(_ZTV7ee32200[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee32200[];
+extern VTBL_ENTRY _ZTV7ee32200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32200[];
+static VTBL_ENTRY alt_thunk_names35[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee322003fooEv,_ZTv0_n12_N7ee322003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee322003fooEv,_ZThn8_N7ee322003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32200 = { "ee32200", // class name
+ bases_ee32200, 4,
+ &(vtc_ee32200[0]), // expected_vtbl_contents
+ &(vtt_ee32200[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee32200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32200),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32200),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names35,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42200 : dd2200 {
+ int e;
+ virtual void bar(); // _ZN7ee422003barEv
+ ~ee42200(); // tgen
+ ee42200(); // tgen
+};
+//SIG(1 ee42200) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee42200 ::bar(){vfunc_called(this, "_ZN7ee422003barEv");}
+ee42200 ::~ee42200(){ note_dtor("ee42200", this);} // tgen
+ee42200 ::ee42200(){ note_ctor("ee42200", this);} // tgen
+
+static void Test_ee42200()
+{
+ extern Class_Descriptor cd_ee42200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee42200, buf);
+ ee42200 *dp, &lv = *(dp=new (buf) ee42200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee42200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*)(dd2200*), ABISELECT(8,4), "ee42200");
+ check_base_class_offset(lv, (bb00*)(cc200*)(dd2200*), ABISELECT(8,4), "ee42200");
+ check_base_class_offset(lv, (cc200*)(dd2200*), 0, "ee42200");
+ check_base_class_offset(lv, (dd2200*), 0, "ee42200");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee42200.e");
+ test_class_info(&lv, &cd_ee42200);
+ dp->~ee42200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42200(Test_ee42200, "ee42200", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee42200C1Ev();
+extern void _ZN7ee42200D1Ev();
+Name_Map name_map_ee42200[] = {
+ NSPAIR(_ZN7ee42200C1Ev),
+ NSPAIR(_ZN7ee42200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd2200;
+extern VTBL_ENTRY _ZTI6dd2200[];
+extern VTBL_ENTRY _ZTV6dd2200[];
+static Base_Class bases_ee42200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42200[];
+extern void _ZN6dd22003fooEv();
+extern void _ZN7ee422003barEv();
+static VTBL_ENTRY vtc_ee42200[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42200[0]),
+ (VTBL_ENTRY)&_ZN6dd22003fooEv,
+ (VTBL_ENTRY)&_ZN7ee422003barEv,
+};
+extern VTBL_ENTRY _ZTI7ee42200[];
+extern VTBL_ENTRY _ZTV7ee42200[];
+Class_Descriptor cd_ee42200 = { "ee42200", // class name
+ bases_ee42200, 4,
+ &(vtc_ee42200[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee42200),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42200),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee52200 : virtual dd2200 {
+ int e;
+ virtual void bar(); // _ZN7ee522003barEv
+ ~ee52200(); // tgen
+ ee52200(); // tgen
+};
+//SIG(1 ee52200) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee52200 ::bar(){vfunc_called(this, "_ZN7ee522003barEv");}
+ee52200 ::~ee52200(){ note_dtor("ee52200", this);} // tgen
+ee52200 ::ee52200(){ note_ctor("ee52200", this);} // tgen
+
+static void Test_ee52200()
+{
+ extern Class_Descriptor cd_ee52200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee52200, buf);
+ ee52200 *dp, &lv = *(dp=new (buf) ee52200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee52200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*)(dd2200*), ABISELECT(24,12), "ee52200");
+ check_base_class_offset(lv, (bb00*)(cc200*)(dd2200*), ABISELECT(24,12), "ee52200");
+ check_base_class_offset(lv, (cc200*)(dd2200*), ABISELECT(16,8), "ee52200");
+ check_base_class_offset(lv, (dd2200*), ABISELECT(16,8), "ee52200");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52200.e");
+ test_class_info(&lv, &cd_ee52200);
+ dp->~ee52200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52200(Test_ee52200, "ee52200", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee52200C1Ev();
+extern void _ZN7ee52200D1Ev();
+Name_Map name_map_ee52200[] = {
+ NSPAIR(_ZN7ee52200C1Ev),
+ NSPAIR(_ZN7ee52200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd2200;
+extern VTBL_ENTRY _ZTI6dd2200[];
+extern VTBL_ENTRY _ZTV6dd2200[];
+static Base_Class bases_ee52200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2200, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee52200[];
+extern void _ZN7ee522003barEv();
+extern void _ZN6dd22003fooEv();
+static VTBL_ENTRY vtc_ee52200[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52200[0]),
+ (VTBL_ENTRY)&_ZN7ee522003barEv,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52200[0]),
+ (VTBL_ENTRY)&_ZN6dd22003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee52200[];
+static VTT_ENTRY vtt_ee52200[] = {
+ {&(_ZTV7ee52200[3]), 3,8},
+ {&(_ZTV7ee52200[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee52200[];
+extern VTBL_ENTRY _ZTV7ee52200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52200[];
+Class_Descriptor cd_ee52200 = { "ee52200", // class name
+ bases_ee52200, 4,
+ &(vtc_ee52200[0]), // expected_vtbl_contents
+ &(vtt_ee52200[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee52200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52200),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52200),2, //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 ee62200 : dd2200 {
+ int e;
+ virtual void foo(); // _ZN7ee622003fooEv
+ virtual void bar(); // _ZN7ee622003barEv
+ ~ee62200(); // tgen
+ ee62200(); // tgen
+};
+//SIG(1 ee62200) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62200 ::foo(){vfunc_called(this, "_ZN7ee622003fooEv");}
+void ee62200 ::bar(){vfunc_called(this, "_ZN7ee622003barEv");}
+ee62200 ::~ee62200(){ note_dtor("ee62200", this);} // tgen
+ee62200 ::ee62200(){ note_ctor("ee62200", this);} // tgen
+
+static void Test_ee62200()
+{
+ extern Class_Descriptor cd_ee62200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee62200, buf);
+ ee62200 *dp, &lv = *(dp=new (buf) ee62200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee62200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*)(dd2200*), ABISELECT(8,4), "ee62200");
+ check_base_class_offset(lv, (bb00*)(cc200*)(dd2200*), ABISELECT(8,4), "ee62200");
+ check_base_class_offset(lv, (cc200*)(dd2200*), 0, "ee62200");
+ check_base_class_offset(lv, (dd2200*), 0, "ee62200");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee62200.e");
+ test_class_info(&lv, &cd_ee62200);
+ dp->~ee62200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62200(Test_ee62200, "ee62200", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee62200C1Ev();
+extern void _ZN7ee62200D1Ev();
+Name_Map name_map_ee62200[] = {
+ NSPAIR(_ZN7ee62200C1Ev),
+ NSPAIR(_ZN7ee62200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd2200;
+extern VTBL_ENTRY _ZTI6dd2200[];
+extern VTBL_ENTRY _ZTV6dd2200[];
+static Base_Class bases_ee62200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62200[];
+extern void _ZN7ee622003fooEv();
+extern void _ZN7ee622003barEv();
+static VTBL_ENTRY vtc_ee62200[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62200[0]),
+ (VTBL_ENTRY)&_ZN7ee622003fooEv,
+ (VTBL_ENTRY)&_ZN7ee622003barEv,
+};
+extern VTBL_ENTRY _ZTI7ee62200[];
+extern VTBL_ENTRY _ZTV7ee62200[];
+Class_Descriptor cd_ee62200 = { "ee62200", // class name
+ bases_ee62200, 4,
+ &(vtc_ee62200[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee62200),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62200),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee72200 : virtual dd2200 {
+ int e;
+ virtual void foo(); // _ZN7ee722003fooEv
+ virtual void bar(); // _ZN7ee722003barEv
+ ~ee72200(); // tgen
+ ee72200(); // tgen
+};
+//SIG(1 ee72200) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72200 ::foo(){vfunc_called(this, "_ZN7ee722003fooEv");}
+void ee72200 ::bar(){vfunc_called(this, "_ZN7ee722003barEv");}
+ee72200 ::~ee72200(){ note_dtor("ee72200", this);} // tgen
+ee72200 ::ee72200(){ note_ctor("ee72200", this);} // tgen
+
+static void Test_ee72200()
+{
+ extern Class_Descriptor cd_ee72200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee72200, buf);
+ ee72200 *dp, &lv = *(dp=new (buf) ee72200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee72200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*)(dd2200*), ABISELECT(24,12), "ee72200");
+ check_base_class_offset(lv, (bb00*)(cc200*)(dd2200*), ABISELECT(24,12), "ee72200");
+ check_base_class_offset(lv, (cc200*)(dd2200*), ABISELECT(16,8), "ee72200");
+ check_base_class_offset(lv, (dd2200*), ABISELECT(16,8), "ee72200");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72200.e");
+ test_class_info(&lv, &cd_ee72200);
+ dp->~ee72200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72200(Test_ee72200, "ee72200", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee72200C1Ev();
+extern void _ZN7ee72200D1Ev();
+Name_Map name_map_ee72200[] = {
+ NSPAIR(_ZN7ee72200C1Ev),
+ NSPAIR(_ZN7ee72200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd2200;
+extern VTBL_ENTRY _ZTI6dd2200[];
+extern VTBL_ENTRY _ZTV6dd2200[];
+static Base_Class bases_ee72200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2200, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee72200[];
+extern void _ZN7ee722003fooEv();
+extern void _ZN7ee722003barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee722003fooEv,_ZTv0_n12_N7ee722003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee722003fooEv,_ZThn8_N7ee722003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72200[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72200[0]),
+ (VTBL_ENTRY)&_ZN7ee722003fooEv,
+ (VTBL_ENTRY)&_ZN7ee722003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee722003fooEv,_ZTv0_n12_N7ee722003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee72200[];
+static VTT_ENTRY vtt_ee72200[] = {
+ {&(_ZTV7ee72200[3]), 3,9},
+ {&(_ZTV7ee72200[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee72200[];
+extern VTBL_ENTRY _ZTV7ee72200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72200[];
+static VTBL_ENTRY alt_thunk_names36[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee722003fooEv,_ZTv0_n12_N7ee722003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee722003fooEv,_ZThn8_N7ee722003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72200 = { "ee72200", // class name
+ bases_ee72200, 4,
+ &(vtc_ee72200[0]), // expected_vtbl_contents
+ &(vtt_ee72200[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee72200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72200),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72200),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names36,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3200 : virtual cc200 {
+ int d;
+ virtual void foo(); // _ZN6dd32003fooEv
+ ~dd3200(); // tgen
+ dd3200(); // tgen
+};
+//SIG(-1 dd3200) C1{ VBC2{ BC3{ BC4{ Fi} Fi} v1 Fi} v1 Fi}
+
+
+void dd3200 ::foo(){vfunc_called(this, "_ZN6dd32003fooEv");}
+dd3200 ::~dd3200(){ note_dtor("dd3200", this);} // tgen
+dd3200 ::dd3200(){ note_ctor("dd3200", this);} // tgen
+
+static void Test_dd3200()
+{
+ extern Class_Descriptor cd_dd3200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd3200, buf);
+ dd3200 *dp, &lv = *(dp=new (buf) dd3200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd3200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(24,12), "dd3200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(24,12), "dd3200");
+ check_base_class_offset(lv, (cc200*), ABISELECT(16,8), "dd3200");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3200.d");
+ test_class_info(&lv, &cd_dd3200);
+ dp->~dd3200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3200(Test_dd3200, "dd3200", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd3200C1Ev();
+extern void _ZN6dd3200D1Ev();
+Name_Map name_map_dd3200[] = {
+ NSPAIR(_ZN6dd3200C1Ev),
+ NSPAIR(_ZN6dd3200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+static Base_Class bases_dd3200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, 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 _ZTI6dd3200[];
+extern void _ZN6dd32003fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32003fooEv,_ZThn8_N6dd32003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd3200[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3200[0]),
+ (VTBL_ENTRY)&_ZN6dd32003fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd3200[];
+static VTT_ENTRY vtt_dd3200[] = {
+ {&(_ZTV6dd3200[3]), 3,8},
+ {&(_ZTV6dd3200[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI6dd3200[];
+extern VTBL_ENTRY _ZTV6dd3200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3200[];
+static VTBL_ENTRY alt_thunk_names37[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32003fooEv,_ZThn8_N6dd32003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3200 = { "dd3200", // class name
+ bases_dd3200, 3,
+ &(vtc_dd3200[0]), // expected_vtbl_contents
+ &(vtt_dd3200[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd3200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3200),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3200),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names37,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03200 : dd3200 {
+ int e;
+ ~ee03200(); // tgen
+ ee03200(); // tgen
+};
+//SIG(1 ee03200) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee03200 ::~ee03200(){ note_dtor("ee03200", this);} // tgen
+ee03200 ::ee03200(){ note_ctor("ee03200", this);} // tgen
+
+static void Test_ee03200()
+{
+ extern Class_Descriptor cd_ee03200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee03200, buf);
+ ee03200 *dp, &lv = *(dp=new (buf) ee03200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee03200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(24,16), "ee03200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(24,16), "ee03200");
+ check_base_class_offset(lv, (cc200*)(dd3200*), ABISELECT(16,12), "ee03200");
+ check_base_class_offset(lv, (dd3200*), 0, "ee03200");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03200.e");
+ test_class_info(&lv, &cd_ee03200);
+ dp->~ee03200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03200(Test_ee03200, "ee03200", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee03200C1Ev();
+extern void _ZN7ee03200D1Ev();
+Name_Map name_map_ee03200[] = {
+ NSPAIR(_ZN7ee03200C1Ev),
+ NSPAIR(_ZN7ee03200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd3200;
+extern VTBL_ENTRY _ZTI6dd3200[];
+extern VTBL_ENTRY _ZTV6dd3200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3200[];
+static Base_Class bases_ee03200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee03200[];
+extern void _ZN6dd32003fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32003fooEv,_ZThn12_N6dd32003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee03200[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03200[0]),
+ (VTBL_ENTRY)&_ZN6dd32003fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee03200[];
+extern void _ZN6dd32003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3200__7ee03200[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3200[0]),
+ (VTBL_ENTRY)&_ZN6dd32003fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32003fooEv,_ZThn12_N6dd32003fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc200__6dd3200__7ee03200[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv),
+};
+static VTT_ENTRY vtt_ee03200[] = {
+ {&(_ZTV7ee03200[3]), 3,8},
+ {&(_tg__ZTV6dd3200__7ee03200[3]), 3,4},
+ {&(_tg__ZTV5cc200__6dd3200__7ee03200[3]), 3,4},
+ {&(_ZTV7ee03200[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee03200[];
+extern VTBL_ENTRY _ZTV7ee03200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03200[];
+static VTBL_ENTRY alt_thunk_names38[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32003fooEv,_ZThn12_N6dd32003fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32003fooEv,_ZThn12_N6dd32003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03200 = { "ee03200", // class name
+ bases_ee03200, 4,
+ &(vtc_ee03200[0]), // expected_vtbl_contents
+ &(vtt_ee03200[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee03200),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03200),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03200),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names38,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13200 : virtual dd3200 {
+ int e;
+ ~ee13200(); // tgen
+ ee13200(); // tgen
+};
+//SIG(1 ee13200) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee13200 ::~ee13200(){ note_dtor("ee13200", this);} // tgen
+ee13200 ::ee13200(){ note_ctor("ee13200", this);} // tgen
+
+static void Test_ee13200()
+{
+ extern Class_Descriptor cd_ee13200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee13200, buf);
+ ee13200 *dp, &lv = *(dp=new (buf) ee13200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee13200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(40,20), "ee13200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(40,20), "ee13200");
+ check_base_class_offset(lv, (cc200*)(dd3200*), ABISELECT(32,16), "ee13200");
+ check_base_class_offset(lv, (dd3200*), ABISELECT(16,8), "ee13200");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13200.e");
+ test_class_info(&lv, &cd_ee13200);
+ dp->~ee13200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13200(Test_ee13200, "ee13200", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee13200C1Ev();
+extern void _ZN7ee13200D1Ev();
+Name_Map name_map_ee13200[] = {
+ NSPAIR(_ZN7ee13200C1Ev),
+ NSPAIR(_ZN7ee13200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd3200;
+extern VTBL_ENTRY _ZTI6dd3200[];
+extern VTBL_ENTRY _ZTV6dd3200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3200[];
+static Base_Class bases_ee13200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,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, 0},
+ {&cd_bb00, ABISELECT(40,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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3200, 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 _ZTI7ee13200[];
+extern void _ZN6dd32003fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32003fooEv,_ZThn8_N6dd32003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee13200[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13200[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13200[0]),
+ (VTBL_ENTRY)&_ZN6dd32003fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee13200[];
+extern void _ZN6dd32003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3200__7ee13200[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3200[0]),
+ (VTBL_ENTRY)&_ZN6dd32003fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32003fooEv,_ZThn8_N6dd32003fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc200__6dd3200__7ee13200[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv),
+};
+static VTT_ENTRY vtt_ee13200[] = {
+ {&(_ZTV7ee13200[4]), 4,13},
+ {&(_ZTV7ee13200[8]), 8,13},
+ {&(_ZTV7ee13200[12]), 12,13},
+ {&(_tg__ZTV6dd3200__7ee13200[3]), 3,4},
+ {&(_tg__ZTV5cc200__6dd3200__7ee13200[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee13200[];
+extern VTBL_ENTRY _ZTV7ee13200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13200[];
+static VTBL_ENTRY alt_thunk_names39[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32003fooEv,_ZThn8_N6dd32003fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32003fooEv,_ZThn8_N6dd32003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13200 = { "ee13200", // class name
+ bases_ee13200, 4,
+ &(vtc_ee13200[0]), // expected_vtbl_contents
+ &(vtt_ee13200[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee13200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13200),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13200),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names39,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23200 : dd3200 {
+ int e;
+ virtual void foo(); // _ZN7ee232003fooEv
+ ~ee23200(); // tgen
+ ee23200(); // tgen
+};
+//SIG(1 ee23200) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee23200 ::foo(){vfunc_called(this, "_ZN7ee232003fooEv");}
+ee23200 ::~ee23200(){ note_dtor("ee23200", this);} // tgen
+ee23200 ::ee23200(){ note_ctor("ee23200", this);} // tgen
+
+static void Test_ee23200()
+{
+ extern Class_Descriptor cd_ee23200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee23200, buf);
+ ee23200 *dp, &lv = *(dp=new (buf) ee23200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee23200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(24,16), "ee23200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(24,16), "ee23200");
+ check_base_class_offset(lv, (cc200*)(dd3200*), ABISELECT(16,12), "ee23200");
+ check_base_class_offset(lv, (dd3200*), 0, "ee23200");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23200.e");
+ test_class_info(&lv, &cd_ee23200);
+ dp->~ee23200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23200(Test_ee23200, "ee23200", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee23200C1Ev();
+extern void _ZN7ee23200D1Ev();
+Name_Map name_map_ee23200[] = {
+ NSPAIR(_ZN7ee23200C1Ev),
+ NSPAIR(_ZN7ee23200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd3200;
+extern VTBL_ENTRY _ZTI6dd3200[];
+extern VTBL_ENTRY _ZTV6dd3200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3200[];
+static Base_Class bases_ee23200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee23200[];
+extern void _ZN7ee232003fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee232003fooEv,_ZTv0_n12_N7ee232003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee232003fooEv,_ZThn12_N7ee232003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee23200[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23200[0]),
+ (VTBL_ENTRY)&_ZN7ee232003fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee232003fooEv,_ZTv0_n12_N7ee232003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee23200[];
+extern void _ZN6dd32003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3200__7ee23200[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3200[0]),
+ (VTBL_ENTRY)&_ZN6dd32003fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32003fooEv,_ZThn12_N6dd32003fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc200__6dd3200__7ee23200[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv),
+};
+static VTT_ENTRY vtt_ee23200[] = {
+ {&(_ZTV7ee23200[3]), 3,8},
+ {&(_tg__ZTV6dd3200__7ee23200[3]), 3,4},
+ {&(_tg__ZTV5cc200__6dd3200__7ee23200[3]), 3,4},
+ {&(_ZTV7ee23200[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee23200[];
+extern VTBL_ENTRY _ZTV7ee23200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23200[];
+static VTBL_ENTRY alt_thunk_names40[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32003fooEv,_ZThn12_N6dd32003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee232003fooEv,_ZTv0_n12_N7ee232003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee232003fooEv,_ZThn12_N7ee232003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23200 = { "ee23200", // class name
+ bases_ee23200, 4,
+ &(vtc_ee23200[0]), // expected_vtbl_contents
+ &(vtt_ee23200[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee23200),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23200),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23200),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names40,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33200 : virtual dd3200 {
+ int e;
+ virtual void foo(); // _ZN7ee332003fooEv
+ ~ee33200(); // tgen
+ ee33200(); // tgen
+};
+//SIG(1 ee33200) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee33200 ::foo(){vfunc_called(this, "_ZN7ee332003fooEv");}
+ee33200 ::~ee33200(){ note_dtor("ee33200", this);} // tgen
+ee33200 ::ee33200(){ note_ctor("ee33200", this);} // tgen
+
+static void Test_ee33200()
+{
+ extern Class_Descriptor cd_ee33200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee33200, buf);
+ ee33200 *dp, &lv = *(dp=new (buf) ee33200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee33200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(40,20), "ee33200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(40,20), "ee33200");
+ check_base_class_offset(lv, (cc200*)(dd3200*), ABISELECT(32,16), "ee33200");
+ check_base_class_offset(lv, (dd3200*), ABISELECT(16,8), "ee33200");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33200.e");
+ test_class_info(&lv, &cd_ee33200);
+ dp->~ee33200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33200(Test_ee33200, "ee33200", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee33200C1Ev();
+extern void _ZN7ee33200D1Ev();
+Name_Map name_map_ee33200[] = {
+ NSPAIR(_ZN7ee33200C1Ev),
+ NSPAIR(_ZN7ee33200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd3200;
+extern VTBL_ENTRY _ZTI6dd3200[];
+extern VTBL_ENTRY _ZTV6dd3200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3200[];
+static Base_Class bases_ee33200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,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, 0},
+ {&cd_bb00, ABISELECT(40,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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3200, 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 _ZTI7ee33200[];
+extern void _ZN7ee332003fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee332003fooEv,_ZTv0_n16_N7ee332003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee332003fooEv,_ZThn8_N7ee332003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee332003fooEv,_ZTv0_n12_N7ee332003fooEv)();
+extern void ABISELECT(_ZThn32_N7ee332003fooEv,_ZThn16_N7ee332003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee33200[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33200[0]),
+ (VTBL_ENTRY)&_ZN7ee332003fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee332003fooEv,_ZTv0_n16_N7ee332003fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee332003fooEv,_ZTv0_n12_N7ee332003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee33200[];
+extern void _ZN6dd32003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3200__7ee33200[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3200[0]),
+ (VTBL_ENTRY)&_ZN6dd32003fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32003fooEv,_ZThn8_N6dd32003fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc200__6dd3200__7ee33200[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv),
+};
+static VTT_ENTRY vtt_ee33200[] = {
+ {&(_ZTV7ee33200[4]), 4,14},
+ {&(_ZTV7ee33200[9]), 9,14},
+ {&(_ZTV7ee33200[13]), 13,14},
+ {&(_tg__ZTV6dd3200__7ee33200[3]), 3,4},
+ {&(_tg__ZTV5cc200__6dd3200__7ee33200[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee33200[];
+extern VTBL_ENTRY _ZTV7ee33200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33200[];
+static VTBL_ENTRY alt_thunk_names41[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32003fooEv,_ZThn8_N6dd32003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee332003fooEv,_ZTv0_n12_N7ee332003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee332003fooEv,_ZThn16_N7ee332003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee332003fooEv,_ZTv0_n16_N7ee332003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee332003fooEv,_ZThn8_N7ee332003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33200 = { "ee33200", // class name
+ bases_ee33200, 4,
+ &(vtc_ee33200[0]), // expected_vtbl_contents
+ &(vtt_ee33200[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee33200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33200),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33200),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names41,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43200 : dd3200 {
+ int e;
+ virtual void bar(); // _ZN7ee432003barEv
+ ~ee43200(); // tgen
+ ee43200(); // tgen
+};
+//SIG(1 ee43200) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee43200 ::bar(){vfunc_called(this, "_ZN7ee432003barEv");}
+ee43200 ::~ee43200(){ note_dtor("ee43200", this);} // tgen
+ee43200 ::ee43200(){ note_ctor("ee43200", this);} // tgen
+
+static void Test_ee43200()
+{
+ extern Class_Descriptor cd_ee43200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee43200, buf);
+ ee43200 *dp, &lv = *(dp=new (buf) ee43200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee43200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(24,16), "ee43200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(24,16), "ee43200");
+ check_base_class_offset(lv, (cc200*)(dd3200*), ABISELECT(16,12), "ee43200");
+ check_base_class_offset(lv, (dd3200*), 0, "ee43200");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43200.e");
+ test_class_info(&lv, &cd_ee43200);
+ dp->~ee43200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43200(Test_ee43200, "ee43200", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee43200C1Ev();
+extern void _ZN7ee43200D1Ev();
+Name_Map name_map_ee43200[] = {
+ NSPAIR(_ZN7ee43200C1Ev),
+ NSPAIR(_ZN7ee43200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd3200;
+extern VTBL_ENTRY _ZTI6dd3200[];
+extern VTBL_ENTRY _ZTV6dd3200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3200[];
+static Base_Class bases_ee43200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee43200[];
+extern void _ZN6dd32003fooEv();
+extern void _ZN7ee432003barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32003fooEv,_ZThn12_N6dd32003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43200[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43200[0]),
+ (VTBL_ENTRY)&_ZN6dd32003fooEv,
+ (VTBL_ENTRY)&_ZN7ee432003barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee43200[];
+extern void _ZN6dd32003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3200__7ee43200[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3200[0]),
+ (VTBL_ENTRY)&_ZN6dd32003fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32003fooEv,_ZThn12_N6dd32003fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc200__6dd3200__7ee43200[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv),
+};
+static VTT_ENTRY vtt_ee43200[] = {
+ {&(_ZTV7ee43200[3]), 3,9},
+ {&(_tg__ZTV6dd3200__7ee43200[3]), 3,4},
+ {&(_tg__ZTV5cc200__6dd3200__7ee43200[3]), 3,4},
+ {&(_ZTV7ee43200[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee43200[];
+extern VTBL_ENTRY _ZTV7ee43200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43200[];
+static VTBL_ENTRY alt_thunk_names42[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32003fooEv,_ZThn12_N6dd32003fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32003fooEv,_ZThn12_N6dd32003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43200 = { "ee43200", // class name
+ bases_ee43200, 4,
+ &(vtc_ee43200[0]), // expected_vtbl_contents
+ &(vtt_ee43200[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee43200),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43200),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43200),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names42,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53200 : virtual dd3200 {
+ int e;
+ virtual void bar(); // _ZN7ee532003barEv
+ ~ee53200(); // tgen
+ ee53200(); // tgen
+};
+//SIG(1 ee53200) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee53200 ::bar(){vfunc_called(this, "_ZN7ee532003barEv");}
+ee53200 ::~ee53200(){ note_dtor("ee53200", this);} // tgen
+ee53200 ::ee53200(){ note_ctor("ee53200", this);} // tgen
+
+static void Test_ee53200()
+{
+ extern Class_Descriptor cd_ee53200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee53200, buf);
+ ee53200 *dp, &lv = *(dp=new (buf) ee53200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee53200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(40,20), "ee53200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(40,20), "ee53200");
+ check_base_class_offset(lv, (cc200*)(dd3200*), ABISELECT(32,16), "ee53200");
+ check_base_class_offset(lv, (dd3200*), ABISELECT(16,8), "ee53200");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53200.e");
+ test_class_info(&lv, &cd_ee53200);
+ dp->~ee53200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53200(Test_ee53200, "ee53200", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee53200C1Ev();
+extern void _ZN7ee53200D1Ev();
+Name_Map name_map_ee53200[] = {
+ NSPAIR(_ZN7ee53200C1Ev),
+ NSPAIR(_ZN7ee53200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd3200;
+extern VTBL_ENTRY _ZTI6dd3200[];
+extern VTBL_ENTRY _ZTV6dd3200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3200[];
+static Base_Class bases_ee53200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,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, 0},
+ {&cd_bb00, ABISELECT(40,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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3200, 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 _ZTI7ee53200[];
+extern void _ZN7ee532003barEv();
+extern void _ZN6dd32003fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32003fooEv,_ZThn8_N6dd32003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53200[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53200[0]),
+ (VTBL_ENTRY)&_ZN7ee532003barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53200[0]),
+ (VTBL_ENTRY)&_ZN6dd32003fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee53200[];
+extern void _ZN6dd32003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3200__7ee53200[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3200[0]),
+ (VTBL_ENTRY)&_ZN6dd32003fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32003fooEv,_ZThn8_N6dd32003fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc200__6dd3200__7ee53200[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv),
+};
+static VTT_ENTRY vtt_ee53200[] = {
+ {&(_ZTV7ee53200[4]), 4,14},
+ {&(_ZTV7ee53200[9]), 9,14},
+ {&(_ZTV7ee53200[13]), 13,14},
+ {&(_tg__ZTV6dd3200__7ee53200[3]), 3,4},
+ {&(_tg__ZTV5cc200__6dd3200__7ee53200[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee53200[];
+extern VTBL_ENTRY _ZTV7ee53200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53200[];
+static VTBL_ENTRY alt_thunk_names43[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32003fooEv,_ZThn8_N6dd32003fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32003fooEv,_ZThn8_N6dd32003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53200 = { "ee53200", // class name
+ bases_ee53200, 4,
+ &(vtc_ee53200[0]), // expected_vtbl_contents
+ &(vtt_ee53200[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee53200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53200),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53200),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names43,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63200 : dd3200 {
+ int e;
+ virtual void foo(); // _ZN7ee632003fooEv
+ virtual void bar(); // _ZN7ee632003barEv
+ ~ee63200(); // tgen
+ ee63200(); // tgen
+};
+//SIG(1 ee63200) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63200 ::foo(){vfunc_called(this, "_ZN7ee632003fooEv");}
+void ee63200 ::bar(){vfunc_called(this, "_ZN7ee632003barEv");}
+ee63200 ::~ee63200(){ note_dtor("ee63200", this);} // tgen
+ee63200 ::ee63200(){ note_ctor("ee63200", this);} // tgen
+
+static void Test_ee63200()
+{
+ extern Class_Descriptor cd_ee63200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee63200, buf);
+ ee63200 *dp, &lv = *(dp=new (buf) ee63200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee63200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(24,16), "ee63200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(24,16), "ee63200");
+ check_base_class_offset(lv, (cc200*)(dd3200*), ABISELECT(16,12), "ee63200");
+ check_base_class_offset(lv, (dd3200*), 0, "ee63200");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63200.e");
+ test_class_info(&lv, &cd_ee63200);
+ dp->~ee63200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63200(Test_ee63200, "ee63200", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee63200C1Ev();
+extern void _ZN7ee63200D1Ev();
+Name_Map name_map_ee63200[] = {
+ NSPAIR(_ZN7ee63200C1Ev),
+ NSPAIR(_ZN7ee63200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd3200;
+extern VTBL_ENTRY _ZTI6dd3200[];
+extern VTBL_ENTRY _ZTV6dd3200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3200[];
+static Base_Class bases_ee63200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee63200[];
+extern void _ZN7ee632003fooEv();
+extern void _ZN7ee632003barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee632003fooEv,_ZTv0_n12_N7ee632003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee632003fooEv,_ZThn12_N7ee632003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63200[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63200[0]),
+ (VTBL_ENTRY)&_ZN7ee632003fooEv,
+ (VTBL_ENTRY)&_ZN7ee632003barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee632003fooEv,_ZTv0_n12_N7ee632003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee63200[];
+extern void _ZN6dd32003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3200__7ee63200[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3200[0]),
+ (VTBL_ENTRY)&_ZN6dd32003fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32003fooEv,_ZThn12_N6dd32003fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc200__6dd3200__7ee63200[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv),
+};
+static VTT_ENTRY vtt_ee63200[] = {
+ {&(_ZTV7ee63200[3]), 3,9},
+ {&(_tg__ZTV6dd3200__7ee63200[3]), 3,4},
+ {&(_tg__ZTV5cc200__6dd3200__7ee63200[3]), 3,4},
+ {&(_ZTV7ee63200[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee63200[];
+extern VTBL_ENTRY _ZTV7ee63200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63200[];
+static VTBL_ENTRY alt_thunk_names44[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32003fooEv,_ZThn12_N6dd32003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee632003fooEv,_ZTv0_n12_N7ee632003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee632003fooEv,_ZThn12_N7ee632003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63200 = { "ee63200", // class name
+ bases_ee63200, 4,
+ &(vtc_ee63200[0]), // expected_vtbl_contents
+ &(vtt_ee63200[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee63200),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63200),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63200),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names44,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73200 : virtual dd3200 {
+ int e;
+ virtual void foo(); // _ZN7ee732003fooEv
+ virtual void bar(); // _ZN7ee732003barEv
+ ~ee73200(); // tgen
+ ee73200(); // tgen
+};
+//SIG(1 ee73200) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73200 ::foo(){vfunc_called(this, "_ZN7ee732003fooEv");}
+void ee73200 ::bar(){vfunc_called(this, "_ZN7ee732003barEv");}
+ee73200 ::~ee73200(){ note_dtor("ee73200", this);} // tgen
+ee73200 ::ee73200(){ note_ctor("ee73200", this);} // tgen
+
+static void Test_ee73200()
+{
+ extern Class_Descriptor cd_ee73200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee73200, buf);
+ ee73200 *dp, &lv = *(dp=new (buf) ee73200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee73200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(40,20), "ee73200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(40,20), "ee73200");
+ check_base_class_offset(lv, (cc200*)(dd3200*), ABISELECT(32,16), "ee73200");
+ check_base_class_offset(lv, (dd3200*), ABISELECT(16,8), "ee73200");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73200.e");
+ test_class_info(&lv, &cd_ee73200);
+ dp->~ee73200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73200(Test_ee73200, "ee73200", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee73200C1Ev();
+extern void _ZN7ee73200D1Ev();
+Name_Map name_map_ee73200[] = {
+ NSPAIR(_ZN7ee73200C1Ev),
+ NSPAIR(_ZN7ee73200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd3200;
+extern VTBL_ENTRY _ZTI6dd3200[];
+extern VTBL_ENTRY _ZTV6dd3200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3200[];
+static Base_Class bases_ee73200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,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, 0},
+ {&cd_bb00, ABISELECT(40,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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3200, 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 _ZTI7ee73200[];
+extern void _ZN7ee732003fooEv();
+extern void _ZN7ee732003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee732003fooEv,_ZTv0_n16_N7ee732003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee732003fooEv,_ZThn8_N7ee732003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee732003fooEv,_ZTv0_n12_N7ee732003fooEv)();
+extern void ABISELECT(_ZThn32_N7ee732003fooEv,_ZThn16_N7ee732003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73200[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73200[0]),
+ (VTBL_ENTRY)&_ZN7ee732003fooEv,
+ (VTBL_ENTRY)&_ZN7ee732003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee732003fooEv,_ZTv0_n16_N7ee732003fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee732003fooEv,_ZTv0_n12_N7ee732003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee73200[];
+extern void _ZN6dd32003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3200__7ee73200[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3200[0]),
+ (VTBL_ENTRY)&_ZN6dd32003fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32003fooEv,_ZThn8_N6dd32003fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc200__6dd3200__7ee73200[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv),
+};
+static VTT_ENTRY vtt_ee73200[] = {
+ {&(_ZTV7ee73200[4]), 4,15},
+ {&(_ZTV7ee73200[10]), 10,15},
+ {&(_ZTV7ee73200[14]), 14,15},
+ {&(_tg__ZTV6dd3200__7ee73200[3]), 3,4},
+ {&(_tg__ZTV5cc200__6dd3200__7ee73200[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee73200[];
+extern VTBL_ENTRY _ZTV7ee73200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73200[];
+static VTBL_ENTRY alt_thunk_names45[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32003fooEv,_ZThn8_N6dd32003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee732003fooEv,_ZTv0_n12_N7ee732003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee732003fooEv,_ZThn16_N7ee732003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee732003fooEv,_ZTv0_n16_N7ee732003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee732003fooEv,_ZThn8_N7ee732003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73200 = { "ee73200", // class name
+ bases_ee73200, 4,
+ &(vtc_ee73200[0]), // expected_vtbl_contents
+ &(vtt_ee73200[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee73200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73200),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73200),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names45,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4200 : cc200 {
+ int d;
+ virtual void bar(); // _ZN6dd42003barEv
+ ~dd4200(); // tgen
+ dd4200(); // tgen
+};
+//SIG(-1 dd4200) C1{ BC2{ BC3{ BC4{ Fi} Fi} v2 Fi} v1 Fi}
+
+
+void dd4200 ::bar(){vfunc_called(this, "_ZN6dd42003barEv");}
+dd4200 ::~dd4200(){ note_dtor("dd4200", this);} // tgen
+dd4200 ::dd4200(){ note_ctor("dd4200", this);} // tgen
+
+static void Test_dd4200()
+{
+ extern Class_Descriptor cd_dd4200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd4200, buf);
+ dd4200 *dp, &lv = *(dp=new (buf) dd4200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd4200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(8,4), "dd4200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(8,4), "dd4200");
+ check_base_class_offset(lv, (cc200*), 0, "dd4200");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd4200.d");
+ test_class_info(&lv, &cd_dd4200);
+ dp->~dd4200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4200(Test_dd4200, "dd4200", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd4200C1Ev();
+extern void _ZN6dd4200D1Ev();
+Name_Map name_map_dd4200[] = {
+ NSPAIR(_ZN6dd4200C1Ev),
+ NSPAIR(_ZN6dd4200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+static Base_Class bases_dd4200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd4200[];
+extern void _ZN5cc2003fooEv();
+extern void _ZN6dd42003barEv();
+static VTBL_ENTRY vtc_dd4200[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+ (VTBL_ENTRY)&_ZN6dd42003barEv,
+};
+extern VTBL_ENTRY _ZTI6dd4200[];
+extern VTBL_ENTRY _ZTV6dd4200[];
+Class_Descriptor cd_dd4200 = { "dd4200", // class name
+ bases_dd4200, 3,
+ &(vtc_dd4200[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd4200),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4200),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 1, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee04200 : dd4200 {
+ int e;
+ ~ee04200(); // tgen
+ ee04200(); // tgen
+};
+//SIG(1 ee04200) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee04200 ::~ee04200(){ note_dtor("ee04200", this);} // tgen
+ee04200 ::ee04200(){ note_ctor("ee04200", this);} // tgen
+
+static void Test_ee04200()
+{
+ extern Class_Descriptor cd_ee04200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee04200, buf);
+ ee04200 *dp, &lv = *(dp=new (buf) ee04200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee04200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*)(dd4200*), ABISELECT(8,4), "ee04200");
+ check_base_class_offset(lv, (bb00*)(cc200*)(dd4200*), ABISELECT(8,4), "ee04200");
+ check_base_class_offset(lv, (cc200*)(dd4200*), 0, "ee04200");
+ check_base_class_offset(lv, (dd4200*), 0, "ee04200");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee04200.e");
+ test_class_info(&lv, &cd_ee04200);
+ dp->~ee04200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04200(Test_ee04200, "ee04200", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee04200C1Ev();
+extern void _ZN7ee04200D1Ev();
+Name_Map name_map_ee04200[] = {
+ NSPAIR(_ZN7ee04200C1Ev),
+ NSPAIR(_ZN7ee04200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd4200;
+extern VTBL_ENTRY _ZTI6dd4200[];
+extern VTBL_ENTRY _ZTV6dd4200[];
+static Base_Class bases_ee04200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4200, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04200[];
+extern void _ZN5cc2003fooEv();
+extern void _ZN6dd42003barEv();
+static VTBL_ENTRY vtc_ee04200[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+ (VTBL_ENTRY)&_ZN6dd42003barEv,
+};
+extern VTBL_ENTRY _ZTI7ee04200[];
+extern VTBL_ENTRY _ZTV7ee04200[];
+Class_Descriptor cd_ee04200 = { "ee04200", // class name
+ bases_ee04200, 4,
+ &(vtc_ee04200[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee04200),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04200),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee14200 : virtual dd4200 {
+ int e;
+ ~ee14200(); // tgen
+ ee14200(); // tgen
+};
+//SIG(1 ee14200) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee14200 ::~ee14200(){ note_dtor("ee14200", this);} // tgen
+ee14200 ::ee14200(){ note_ctor("ee14200", this);} // tgen
+
+static void Test_ee14200()
+{
+ extern Class_Descriptor cd_ee14200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee14200, buf);
+ ee14200 *dp, &lv = *(dp=new (buf) ee14200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee14200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*)(dd4200*), ABISELECT(24,12), "ee14200");
+ check_base_class_offset(lv, (bb00*)(cc200*)(dd4200*), ABISELECT(24,12), "ee14200");
+ check_base_class_offset(lv, (cc200*)(dd4200*), ABISELECT(16,8), "ee14200");
+ check_base_class_offset(lv, (dd4200*), ABISELECT(16,8), "ee14200");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14200.e");
+ test_class_info(&lv, &cd_ee14200);
+ dp->~ee14200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14200(Test_ee14200, "ee14200", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee14200C1Ev();
+extern void _ZN7ee14200D1Ev();
+Name_Map name_map_ee14200[] = {
+ NSPAIR(_ZN7ee14200C1Ev),
+ NSPAIR(_ZN7ee14200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd4200;
+extern VTBL_ENTRY _ZTI6dd4200[];
+extern VTBL_ENTRY _ZTV6dd4200[];
+static Base_Class bases_ee14200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4200, ABISELECT(16,8), //bcp->offset
+ 3, //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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee14200[];
+extern void _ZN5cc2003fooEv();
+extern void _ZN6dd42003barEv();
+static VTBL_ENTRY vtc_ee14200[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14200[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+ (VTBL_ENTRY)&_ZN6dd42003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee14200[];
+static VTT_ENTRY vtt_ee14200[] = {
+ {&(_ZTV7ee14200[3]), 3,9},
+ {&(_ZTV7ee14200[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee14200[];
+extern VTBL_ENTRY _ZTV7ee14200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14200[];
+Class_Descriptor cd_ee14200 = { "ee14200", // class name
+ bases_ee14200, 4,
+ &(vtc_ee14200[0]), // expected_vtbl_contents
+ &(vtt_ee14200[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee14200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14200),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14200),2, //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 ee24200 : dd4200 {
+ int e;
+ virtual void foo(); // _ZN7ee242003fooEv
+ ~ee24200(); // tgen
+ ee24200(); // tgen
+};
+//SIG(1 ee24200) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee24200 ::foo(){vfunc_called(this, "_ZN7ee242003fooEv");}
+ee24200 ::~ee24200(){ note_dtor("ee24200", this);} // tgen
+ee24200 ::ee24200(){ note_ctor("ee24200", this);} // tgen
+
+static void Test_ee24200()
+{
+ extern Class_Descriptor cd_ee24200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee24200, buf);
+ ee24200 *dp, &lv = *(dp=new (buf) ee24200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee24200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*)(dd4200*), ABISELECT(8,4), "ee24200");
+ check_base_class_offset(lv, (bb00*)(cc200*)(dd4200*), ABISELECT(8,4), "ee24200");
+ check_base_class_offset(lv, (cc200*)(dd4200*), 0, "ee24200");
+ check_base_class_offset(lv, (dd4200*), 0, "ee24200");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee24200.e");
+ test_class_info(&lv, &cd_ee24200);
+ dp->~ee24200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24200(Test_ee24200, "ee24200", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee24200C1Ev();
+extern void _ZN7ee24200D1Ev();
+Name_Map name_map_ee24200[] = {
+ NSPAIR(_ZN7ee24200C1Ev),
+ NSPAIR(_ZN7ee24200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd4200;
+extern VTBL_ENTRY _ZTI6dd4200[];
+extern VTBL_ENTRY _ZTV6dd4200[];
+static Base_Class bases_ee24200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24200[];
+extern void _ZN7ee242003fooEv();
+extern void _ZN6dd42003barEv();
+static VTBL_ENTRY vtc_ee24200[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24200[0]),
+ (VTBL_ENTRY)&_ZN7ee242003fooEv,
+ (VTBL_ENTRY)&_ZN6dd42003barEv,
+};
+extern VTBL_ENTRY _ZTI7ee24200[];
+extern VTBL_ENTRY _ZTV7ee24200[];
+Class_Descriptor cd_ee24200 = { "ee24200", // class name
+ bases_ee24200, 4,
+ &(vtc_ee24200[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee24200),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24200),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee34200 : virtual dd4200 {
+ int e;
+ virtual void foo(); // _ZN7ee342003fooEv
+ ~ee34200(); // tgen
+ ee34200(); // tgen
+};
+//SIG(1 ee34200) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee34200 ::foo(){vfunc_called(this, "_ZN7ee342003fooEv");}
+ee34200 ::~ee34200(){ note_dtor("ee34200", this);} // tgen
+ee34200 ::ee34200(){ note_ctor("ee34200", this);} // tgen
+
+static void Test_ee34200()
+{
+ extern Class_Descriptor cd_ee34200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee34200, buf);
+ ee34200 *dp, &lv = *(dp=new (buf) ee34200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee34200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*)(dd4200*), ABISELECT(24,12), "ee34200");
+ check_base_class_offset(lv, (bb00*)(cc200*)(dd4200*), ABISELECT(24,12), "ee34200");
+ check_base_class_offset(lv, (cc200*)(dd4200*), ABISELECT(16,8), "ee34200");
+ check_base_class_offset(lv, (dd4200*), ABISELECT(16,8), "ee34200");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34200.e");
+ test_class_info(&lv, &cd_ee34200);
+ dp->~ee34200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34200(Test_ee34200, "ee34200", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee34200C1Ev();
+extern void _ZN7ee34200D1Ev();
+Name_Map name_map_ee34200[] = {
+ NSPAIR(_ZN7ee34200C1Ev),
+ NSPAIR(_ZN7ee34200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd4200;
+extern VTBL_ENTRY _ZTI6dd4200[];
+extern VTBL_ENTRY _ZTV6dd4200[];
+static Base_Class bases_ee34200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4200, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee34200[];
+extern void _ZN7ee342003fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee342003fooEv,_ZTv0_n12_N7ee342003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee342003fooEv,_ZThn8_N7ee342003fooEv)() __attribute__((weak));
+extern void _ZN6dd42003barEv();
+static VTBL_ENTRY vtc_ee34200[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34200[0]),
+ (VTBL_ENTRY)&_ZN7ee342003fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee342003fooEv,_ZTv0_n12_N7ee342003fooEv),
+ (VTBL_ENTRY)&_ZN6dd42003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee34200[];
+static VTT_ENTRY vtt_ee34200[] = {
+ {&(_ZTV7ee34200[3]), 3,10},
+ {&(_ZTV7ee34200[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee34200[];
+extern VTBL_ENTRY _ZTV7ee34200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34200[];
+static VTBL_ENTRY alt_thunk_names46[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee342003fooEv,_ZTv0_n12_N7ee342003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee342003fooEv,_ZThn8_N7ee342003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34200 = { "ee34200", // class name
+ bases_ee34200, 4,
+ &(vtc_ee34200[0]), // expected_vtbl_contents
+ &(vtt_ee34200[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee34200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34200),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34200),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names46,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44200 : dd4200 {
+ int e;
+ virtual void bar(); // _ZN7ee442003barEv
+ ~ee44200(); // tgen
+ ee44200(); // tgen
+};
+//SIG(1 ee44200) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee44200 ::bar(){vfunc_called(this, "_ZN7ee442003barEv");}
+ee44200 ::~ee44200(){ note_dtor("ee44200", this);} // tgen
+ee44200 ::ee44200(){ note_ctor("ee44200", this);} // tgen
+
+static void Test_ee44200()
+{
+ extern Class_Descriptor cd_ee44200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee44200, buf);
+ ee44200 *dp, &lv = *(dp=new (buf) ee44200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee44200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*)(dd4200*), ABISELECT(8,4), "ee44200");
+ check_base_class_offset(lv, (bb00*)(cc200*)(dd4200*), ABISELECT(8,4), "ee44200");
+ check_base_class_offset(lv, (cc200*)(dd4200*), 0, "ee44200");
+ check_base_class_offset(lv, (dd4200*), 0, "ee44200");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee44200.e");
+ test_class_info(&lv, &cd_ee44200);
+ dp->~ee44200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44200(Test_ee44200, "ee44200", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee44200C1Ev();
+extern void _ZN7ee44200D1Ev();
+Name_Map name_map_ee44200[] = {
+ NSPAIR(_ZN7ee44200C1Ev),
+ NSPAIR(_ZN7ee44200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd4200;
+extern VTBL_ENTRY _ZTI6dd4200[];
+extern VTBL_ENTRY _ZTV6dd4200[];
+static Base_Class bases_ee44200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44200[];
+extern void _ZN5cc2003fooEv();
+extern void _ZN7ee442003barEv();
+static VTBL_ENTRY vtc_ee44200[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+ (VTBL_ENTRY)&_ZN7ee442003barEv,
+};
+extern VTBL_ENTRY _ZTI7ee44200[];
+extern VTBL_ENTRY _ZTV7ee44200[];
+Class_Descriptor cd_ee44200 = { "ee44200", // class name
+ bases_ee44200, 4,
+ &(vtc_ee44200[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee44200),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44200),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee54200 : virtual dd4200 {
+ int e;
+ virtual void bar(); // _ZN7ee542003barEv
+ ~ee54200(); // tgen
+ ee54200(); // tgen
+};
+//SIG(1 ee54200) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee54200 ::bar(){vfunc_called(this, "_ZN7ee542003barEv");}
+ee54200 ::~ee54200(){ note_dtor("ee54200", this);} // tgen
+ee54200 ::ee54200(){ note_ctor("ee54200", this);} // tgen
+
+static void Test_ee54200()
+{
+ extern Class_Descriptor cd_ee54200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee54200, buf);
+ ee54200 *dp, &lv = *(dp=new (buf) ee54200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee54200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*)(dd4200*), ABISELECT(24,12), "ee54200");
+ check_base_class_offset(lv, (bb00*)(cc200*)(dd4200*), ABISELECT(24,12), "ee54200");
+ check_base_class_offset(lv, (cc200*)(dd4200*), ABISELECT(16,8), "ee54200");
+ check_base_class_offset(lv, (dd4200*), ABISELECT(16,8), "ee54200");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54200.e");
+ test_class_info(&lv, &cd_ee54200);
+ dp->~ee54200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54200(Test_ee54200, "ee54200", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee54200C1Ev();
+extern void _ZN7ee54200D1Ev();
+Name_Map name_map_ee54200[] = {
+ NSPAIR(_ZN7ee54200C1Ev),
+ NSPAIR(_ZN7ee54200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd4200;
+extern VTBL_ENTRY _ZTI6dd4200[];
+extern VTBL_ENTRY _ZTV6dd4200[];
+static Base_Class bases_ee54200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4200, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee54200[];
+extern void _ZN7ee542003barEv();
+extern void _ZN5cc2003fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee542003barEv,_ZTv0_n16_N7ee542003barEv)();
+extern void ABISELECT(_ZThn16_N7ee542003barEv,_ZThn8_N7ee542003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54200[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54200[0]),
+ (VTBL_ENTRY)&_ZN7ee542003barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee542003barEv,_ZTv0_n16_N7ee542003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54200[];
+static VTT_ENTRY vtt_ee54200[] = {
+ {&(_ZTV7ee54200[3]), 3,10},
+ {&(_ZTV7ee54200[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee54200[];
+extern VTBL_ENTRY _ZTV7ee54200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54200[];
+static VTBL_ENTRY alt_thunk_names47[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee542003barEv,_ZTv0_n16_N7ee542003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee542003barEv,_ZThn8_N7ee542003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54200 = { "ee54200", // class name
+ bases_ee54200, 4,
+ &(vtc_ee54200[0]), // expected_vtbl_contents
+ &(vtt_ee54200[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee54200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54200),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54200),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names47,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64200 : dd4200 {
+ int e;
+ virtual void foo(); // _ZN7ee642003fooEv
+ virtual void bar(); // _ZN7ee642003barEv
+ ~ee64200(); // tgen
+ ee64200(); // tgen
+};
+//SIG(1 ee64200) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64200 ::foo(){vfunc_called(this, "_ZN7ee642003fooEv");}
+void ee64200 ::bar(){vfunc_called(this, "_ZN7ee642003barEv");}
+ee64200 ::~ee64200(){ note_dtor("ee64200", this);} // tgen
+ee64200 ::ee64200(){ note_ctor("ee64200", this);} // tgen
+
+static void Test_ee64200()
+{
+ extern Class_Descriptor cd_ee64200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee64200, buf);
+ ee64200 *dp, &lv = *(dp=new (buf) ee64200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee64200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*)(dd4200*), ABISELECT(8,4), "ee64200");
+ check_base_class_offset(lv, (bb00*)(cc200*)(dd4200*), ABISELECT(8,4), "ee64200");
+ check_base_class_offset(lv, (cc200*)(dd4200*), 0, "ee64200");
+ check_base_class_offset(lv, (dd4200*), 0, "ee64200");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee64200.e");
+ test_class_info(&lv, &cd_ee64200);
+ dp->~ee64200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64200(Test_ee64200, "ee64200", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee64200C1Ev();
+extern void _ZN7ee64200D1Ev();
+Name_Map name_map_ee64200[] = {
+ NSPAIR(_ZN7ee64200C1Ev),
+ NSPAIR(_ZN7ee64200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd4200;
+extern VTBL_ENTRY _ZTI6dd4200[];
+extern VTBL_ENTRY _ZTV6dd4200[];
+static Base_Class bases_ee64200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64200[];
+extern void _ZN7ee642003fooEv();
+extern void _ZN7ee642003barEv();
+static VTBL_ENTRY vtc_ee64200[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64200[0]),
+ (VTBL_ENTRY)&_ZN7ee642003fooEv,
+ (VTBL_ENTRY)&_ZN7ee642003barEv,
+};
+extern VTBL_ENTRY _ZTI7ee64200[];
+extern VTBL_ENTRY _ZTV7ee64200[];
+Class_Descriptor cd_ee64200 = { "ee64200", // class name
+ bases_ee64200, 4,
+ &(vtc_ee64200[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee64200),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64200),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee74200 : virtual dd4200 {
+ int e;
+ virtual void foo(); // _ZN7ee742003fooEv
+ virtual void bar(); // _ZN7ee742003barEv
+ ~ee74200(); // tgen
+ ee74200(); // tgen
+};
+//SIG(1 ee74200) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74200 ::foo(){vfunc_called(this, "_ZN7ee742003fooEv");}
+void ee74200 ::bar(){vfunc_called(this, "_ZN7ee742003barEv");}
+ee74200 ::~ee74200(){ note_dtor("ee74200", this);} // tgen
+ee74200 ::ee74200(){ note_ctor("ee74200", this);} // tgen
+
+static void Test_ee74200()
+{
+ extern Class_Descriptor cd_ee74200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee74200, buf);
+ ee74200 *dp, &lv = *(dp=new (buf) ee74200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee74200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*)(dd4200*), ABISELECT(24,12), "ee74200");
+ check_base_class_offset(lv, (bb00*)(cc200*)(dd4200*), ABISELECT(24,12), "ee74200");
+ check_base_class_offset(lv, (cc200*)(dd4200*), ABISELECT(16,8), "ee74200");
+ check_base_class_offset(lv, (dd4200*), ABISELECT(16,8), "ee74200");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74200.e");
+ test_class_info(&lv, &cd_ee74200);
+ dp->~ee74200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74200(Test_ee74200, "ee74200", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee74200C1Ev();
+extern void _ZN7ee74200D1Ev();
+Name_Map name_map_ee74200[] = {
+ NSPAIR(_ZN7ee74200C1Ev),
+ NSPAIR(_ZN7ee74200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd4200;
+extern VTBL_ENTRY _ZTI6dd4200[];
+extern VTBL_ENTRY _ZTV6dd4200[];
+static Base_Class bases_ee74200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4200, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee74200[];
+extern void _ZN7ee742003fooEv();
+extern void _ZN7ee742003barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee742003fooEv,_ZTv0_n12_N7ee742003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee742003fooEv,_ZThn8_N7ee742003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee742003barEv,_ZTv0_n16_N7ee742003barEv)();
+extern void ABISELECT(_ZThn16_N7ee742003barEv,_ZThn8_N7ee742003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74200[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74200[0]),
+ (VTBL_ENTRY)&_ZN7ee742003fooEv,
+ (VTBL_ENTRY)&_ZN7ee742003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee742003fooEv,_ZTv0_n12_N7ee742003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee742003barEv,_ZTv0_n16_N7ee742003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74200[];
+static VTT_ENTRY vtt_ee74200[] = {
+ {&(_ZTV7ee74200[3]), 3,11},
+ {&(_ZTV7ee74200[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee74200[];
+extern VTBL_ENTRY _ZTV7ee74200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74200[];
+static VTBL_ENTRY alt_thunk_names48[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee742003barEv,_ZTv0_n16_N7ee742003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee742003barEv,_ZThn8_N7ee742003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee742003fooEv,_ZTv0_n12_N7ee742003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee742003fooEv,_ZThn8_N7ee742003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74200 = { "ee74200", // class name
+ bases_ee74200, 4,
+ &(vtc_ee74200[0]), // expected_vtbl_contents
+ &(vtt_ee74200[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee74200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74200),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74200),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names48,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5200 : virtual cc200 {
+ int d;
+ virtual void bar(); // _ZN6dd52003barEv
+ ~dd5200(); // tgen
+ dd5200(); // tgen
+};
+//SIG(-1 dd5200) C1{ VBC2{ BC3{ BC4{ Fi} Fi} v2 Fi} v1 Fi}
+
+
+void dd5200 ::bar(){vfunc_called(this, "_ZN6dd52003barEv");}
+dd5200 ::~dd5200(){ note_dtor("dd5200", this);} // tgen
+dd5200 ::dd5200(){ note_ctor("dd5200", this);} // tgen
+
+static void Test_dd5200()
+{
+ extern Class_Descriptor cd_dd5200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd5200, buf);
+ dd5200 *dp, &lv = *(dp=new (buf) dd5200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd5200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(24,12), "dd5200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(24,12), "dd5200");
+ check_base_class_offset(lv, (cc200*), ABISELECT(16,8), "dd5200");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5200.d");
+ test_class_info(&lv, &cd_dd5200);
+ dp->~dd5200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5200(Test_dd5200, "dd5200", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd5200C1Ev();
+extern void _ZN6dd5200D1Ev();
+Name_Map name_map_dd5200[] = {
+ NSPAIR(_ZN6dd5200C1Ev),
+ NSPAIR(_ZN6dd5200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+static Base_Class bases_dd5200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, 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 _ZTI6dd5200[];
+extern void _ZN6dd52003barEv();
+extern void _ZN5cc2003fooEv();
+static VTBL_ENTRY vtc_dd5200[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5200[0]),
+ (VTBL_ENTRY)&_ZN6dd52003barEv,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd5200[];
+static VTT_ENTRY vtt_dd5200[] = {
+ {&(_ZTV6dd5200[3]), 3,8},
+ {&(_ZTV6dd5200[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI6dd5200[];
+extern VTBL_ENTRY _ZTV6dd5200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5200[];
+Class_Descriptor cd_dd5200 = { "dd5200", // class name
+ bases_dd5200, 3,
+ &(vtc_dd5200[0]), // expected_vtbl_contents
+ &(vtt_dd5200[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd5200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5200),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5200),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 ee05200 : dd5200 {
+ int e;
+ ~ee05200(); // tgen
+ ee05200(); // tgen
+};
+//SIG(1 ee05200) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee05200 ::~ee05200(){ note_dtor("ee05200", this);} // tgen
+ee05200 ::ee05200(){ note_ctor("ee05200", this);} // tgen
+
+static void Test_ee05200()
+{
+ extern Class_Descriptor cd_ee05200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee05200, buf);
+ ee05200 *dp, &lv = *(dp=new (buf) ee05200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee05200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(24,16), "ee05200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(24,16), "ee05200");
+ check_base_class_offset(lv, (cc200*)(dd5200*), ABISELECT(16,12), "ee05200");
+ check_base_class_offset(lv, (dd5200*), 0, "ee05200");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05200.e");
+ test_class_info(&lv, &cd_ee05200);
+ dp->~ee05200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05200(Test_ee05200, "ee05200", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee05200C1Ev();
+extern void _ZN7ee05200D1Ev();
+Name_Map name_map_ee05200[] = {
+ NSPAIR(_ZN7ee05200C1Ev),
+ NSPAIR(_ZN7ee05200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd5200;
+extern VTBL_ENTRY _ZTI6dd5200[];
+extern VTBL_ENTRY _ZTV6dd5200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5200[];
+static Base_Class bases_ee05200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee05200[];
+extern void _ZN6dd52003barEv();
+extern void _ZN5cc2003fooEv();
+static VTBL_ENTRY vtc_ee05200[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05200[0]),
+ (VTBL_ENTRY)&_ZN6dd52003barEv,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee05200[];
+extern void _ZN6dd52003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5200__7ee05200[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5200[0]),
+ (VTBL_ENTRY)&_ZN6dd52003barEv,
+};
+extern void _ZN5cc2003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc200__6dd5200__7ee05200[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+};
+static VTT_ENTRY vtt_ee05200[] = {
+ {&(_ZTV7ee05200[3]), 3,8},
+ {&(_tg__ZTV6dd5200__7ee05200[3]), 3,4},
+ {&(_tg__ZTV5cc200__6dd5200__7ee05200[3]), 3,4},
+ {&(_ZTV7ee05200[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee05200[];
+extern VTBL_ENTRY _ZTV7ee05200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05200[];
+Class_Descriptor cd_ee05200 = { "ee05200", // class name
+ bases_ee05200, 4,
+ &(vtc_ee05200[0]), // expected_vtbl_contents
+ &(vtt_ee05200[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee05200),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05200),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05200),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 ee15200 : virtual dd5200 {
+ int e;
+ ~ee15200(); // tgen
+ ee15200(); // tgen
+};
+//SIG(1 ee15200) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee15200 ::~ee15200(){ note_dtor("ee15200", this);} // tgen
+ee15200 ::ee15200(){ note_ctor("ee15200", this);} // tgen
+
+static void Test_ee15200()
+{
+ extern Class_Descriptor cd_ee15200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee15200, buf);
+ ee15200 *dp, &lv = *(dp=new (buf) ee15200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee15200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(40,20), "ee15200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(40,20), "ee15200");
+ check_base_class_offset(lv, (cc200*)(dd5200*), ABISELECT(32,16), "ee15200");
+ check_base_class_offset(lv, (dd5200*), ABISELECT(16,8), "ee15200");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15200.e");
+ test_class_info(&lv, &cd_ee15200);
+ dp->~ee15200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15200(Test_ee15200, "ee15200", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee15200C1Ev();
+extern void _ZN7ee15200D1Ev();
+Name_Map name_map_ee15200[] = {
+ NSPAIR(_ZN7ee15200C1Ev),
+ NSPAIR(_ZN7ee15200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd5200;
+extern VTBL_ENTRY _ZTI6dd5200[];
+extern VTBL_ENTRY _ZTV6dd5200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5200[];
+static Base_Class bases_ee15200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,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, 0},
+ {&cd_bb00, ABISELECT(40,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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5200, 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 _ZTI7ee15200[];
+extern void _ZN6dd52003barEv();
+extern void _ZN5cc2003fooEv();
+static VTBL_ENTRY vtc_ee15200[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15200[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15200[0]),
+ (VTBL_ENTRY)&_ZN6dd52003barEv,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee15200[];
+extern void _ZN6dd52003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5200__7ee15200[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5200[0]),
+ (VTBL_ENTRY)&_ZN6dd52003barEv,
+};
+extern void _ZN5cc2003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc200__6dd5200__7ee15200[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+};
+static VTT_ENTRY vtt_ee15200[] = {
+ {&(_ZTV7ee15200[4]), 4,13},
+ {&(_ZTV7ee15200[8]), 8,13},
+ {&(_ZTV7ee15200[12]), 12,13},
+ {&(_tg__ZTV6dd5200__7ee15200[3]), 3,4},
+ {&(_tg__ZTV5cc200__6dd5200__7ee15200[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee15200[];
+extern VTBL_ENTRY _ZTV7ee15200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15200[];
+Class_Descriptor cd_ee15200 = { "ee15200", // class name
+ bases_ee15200, 4,
+ &(vtc_ee15200[0]), // expected_vtbl_contents
+ &(vtt_ee15200[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee15200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15200),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15200),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 ee25200 : dd5200 {
+ int e;
+ virtual void foo(); // _ZN7ee252003fooEv
+ ~ee25200(); // tgen
+ ee25200(); // tgen
+};
+//SIG(1 ee25200) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee25200 ::foo(){vfunc_called(this, "_ZN7ee252003fooEv");}
+ee25200 ::~ee25200(){ note_dtor("ee25200", this);} // tgen
+ee25200 ::ee25200(){ note_ctor("ee25200", this);} // tgen
+
+static void Test_ee25200()
+{
+ extern Class_Descriptor cd_ee25200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee25200, buf);
+ ee25200 *dp, &lv = *(dp=new (buf) ee25200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee25200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(24,16), "ee25200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(24,16), "ee25200");
+ check_base_class_offset(lv, (cc200*)(dd5200*), ABISELECT(16,12), "ee25200");
+ check_base_class_offset(lv, (dd5200*), 0, "ee25200");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25200.e");
+ test_class_info(&lv, &cd_ee25200);
+ dp->~ee25200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25200(Test_ee25200, "ee25200", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee25200C1Ev();
+extern void _ZN7ee25200D1Ev();
+Name_Map name_map_ee25200[] = {
+ NSPAIR(_ZN7ee25200C1Ev),
+ NSPAIR(_ZN7ee25200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd5200;
+extern VTBL_ENTRY _ZTI6dd5200[];
+extern VTBL_ENTRY _ZTV6dd5200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5200[];
+static Base_Class bases_ee25200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee25200[];
+extern void _ZN6dd52003barEv();
+extern void _ZN7ee252003fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee252003fooEv,_ZTv0_n12_N7ee252003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee252003fooEv,_ZThn12_N7ee252003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25200[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25200[0]),
+ (VTBL_ENTRY)&_ZN6dd52003barEv,
+ (VTBL_ENTRY)&_ZN7ee252003fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee252003fooEv,_ZTv0_n12_N7ee252003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee25200[];
+extern void _ZN6dd52003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5200__7ee25200[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5200[0]),
+ (VTBL_ENTRY)&_ZN6dd52003barEv,
+};
+extern void _ZN5cc2003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc200__6dd5200__7ee25200[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+};
+static VTT_ENTRY vtt_ee25200[] = {
+ {&(_ZTV7ee25200[3]), 3,9},
+ {&(_tg__ZTV6dd5200__7ee25200[3]), 3,4},
+ {&(_tg__ZTV5cc200__6dd5200__7ee25200[3]), 3,4},
+ {&(_ZTV7ee25200[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee25200[];
+extern VTBL_ENTRY _ZTV7ee25200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25200[];
+static VTBL_ENTRY alt_thunk_names49[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee252003fooEv,_ZTv0_n12_N7ee252003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee252003fooEv,_ZThn12_N7ee252003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25200 = { "ee25200", // class name
+ bases_ee25200, 4,
+ &(vtc_ee25200[0]), // expected_vtbl_contents
+ &(vtt_ee25200[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee25200),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25200),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25200),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names49,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35200 : virtual dd5200 {
+ int e;
+ virtual void foo(); // _ZN7ee352003fooEv
+ ~ee35200(); // tgen
+ ee35200(); // tgen
+};
+//SIG(1 ee35200) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee35200 ::foo(){vfunc_called(this, "_ZN7ee352003fooEv");}
+ee35200 ::~ee35200(){ note_dtor("ee35200", this);} // tgen
+ee35200 ::ee35200(){ note_ctor("ee35200", this);} // tgen
+
+static void Test_ee35200()
+{
+ extern Class_Descriptor cd_ee35200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee35200, buf);
+ ee35200 *dp, &lv = *(dp=new (buf) ee35200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee35200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(40,20), "ee35200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(40,20), "ee35200");
+ check_base_class_offset(lv, (cc200*)(dd5200*), ABISELECT(32,16), "ee35200");
+ check_base_class_offset(lv, (dd5200*), ABISELECT(16,8), "ee35200");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35200.e");
+ test_class_info(&lv, &cd_ee35200);
+ dp->~ee35200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35200(Test_ee35200, "ee35200", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee35200C1Ev();
+extern void _ZN7ee35200D1Ev();
+Name_Map name_map_ee35200[] = {
+ NSPAIR(_ZN7ee35200C1Ev),
+ NSPAIR(_ZN7ee35200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd5200;
+extern VTBL_ENTRY _ZTI6dd5200[];
+extern VTBL_ENTRY _ZTV6dd5200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5200[];
+static Base_Class bases_ee35200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,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, 0},
+ {&cd_bb00, ABISELECT(40,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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5200, 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 _ZTI7ee35200[];
+extern void _ZN7ee352003fooEv();
+extern void _ZN6dd52003barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee352003fooEv,_ZTv0_n12_N7ee352003fooEv)();
+extern void ABISELECT(_ZThn32_N7ee352003fooEv,_ZThn16_N7ee352003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35200[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35200[0]),
+ (VTBL_ENTRY)&_ZN7ee352003fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35200[0]),
+ (VTBL_ENTRY)&_ZN6dd52003barEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee352003fooEv,_ZTv0_n12_N7ee352003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee35200[];
+extern void _ZN6dd52003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5200__7ee35200[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5200[0]),
+ (VTBL_ENTRY)&_ZN6dd52003barEv,
+};
+extern void _ZN5cc2003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc200__6dd5200__7ee35200[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+};
+static VTT_ENTRY vtt_ee35200[] = {
+ {&(_ZTV7ee35200[4]), 4,14},
+ {&(_ZTV7ee35200[9]), 9,14},
+ {&(_ZTV7ee35200[13]), 13,14},
+ {&(_tg__ZTV6dd5200__7ee35200[3]), 3,4},
+ {&(_tg__ZTV5cc200__6dd5200__7ee35200[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee35200[];
+extern VTBL_ENTRY _ZTV7ee35200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35200[];
+static VTBL_ENTRY alt_thunk_names50[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee352003fooEv,_ZTv0_n12_N7ee352003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee352003fooEv,_ZThn16_N7ee352003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35200 = { "ee35200", // class name
+ bases_ee35200, 4,
+ &(vtc_ee35200[0]), // expected_vtbl_contents
+ &(vtt_ee35200[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee35200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35200),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35200),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names50,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45200 : dd5200 {
+ int e;
+ virtual void bar(); // _ZN7ee452003barEv
+ ~ee45200(); // tgen
+ ee45200(); // tgen
+};
+//SIG(1 ee45200) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee45200 ::bar(){vfunc_called(this, "_ZN7ee452003barEv");}
+ee45200 ::~ee45200(){ note_dtor("ee45200", this);} // tgen
+ee45200 ::ee45200(){ note_ctor("ee45200", this);} // tgen
+
+static void Test_ee45200()
+{
+ extern Class_Descriptor cd_ee45200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee45200, buf);
+ ee45200 *dp, &lv = *(dp=new (buf) ee45200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee45200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(24,16), "ee45200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(24,16), "ee45200");
+ check_base_class_offset(lv, (cc200*)(dd5200*), ABISELECT(16,12), "ee45200");
+ check_base_class_offset(lv, (dd5200*), 0, "ee45200");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45200.e");
+ test_class_info(&lv, &cd_ee45200);
+ dp->~ee45200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45200(Test_ee45200, "ee45200", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee45200C1Ev();
+extern void _ZN7ee45200D1Ev();
+Name_Map name_map_ee45200[] = {
+ NSPAIR(_ZN7ee45200C1Ev),
+ NSPAIR(_ZN7ee45200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd5200;
+extern VTBL_ENTRY _ZTI6dd5200[];
+extern VTBL_ENTRY _ZTV6dd5200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5200[];
+static Base_Class bases_ee45200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee45200[];
+extern void _ZN7ee452003barEv();
+extern void _ZN5cc2003fooEv();
+static VTBL_ENTRY vtc_ee45200[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45200[0]),
+ (VTBL_ENTRY)&_ZN7ee452003barEv,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee45200[];
+extern void _ZN6dd52003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5200__7ee45200[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5200[0]),
+ (VTBL_ENTRY)&_ZN6dd52003barEv,
+};
+extern void _ZN5cc2003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc200__6dd5200__7ee45200[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+};
+static VTT_ENTRY vtt_ee45200[] = {
+ {&(_ZTV7ee45200[3]), 3,8},
+ {&(_tg__ZTV6dd5200__7ee45200[3]), 3,4},
+ {&(_tg__ZTV5cc200__6dd5200__7ee45200[3]), 3,4},
+ {&(_ZTV7ee45200[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee45200[];
+extern VTBL_ENTRY _ZTV7ee45200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45200[];
+Class_Descriptor cd_ee45200 = { "ee45200", // class name
+ bases_ee45200, 4,
+ &(vtc_ee45200[0]), // expected_vtbl_contents
+ &(vtt_ee45200[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee45200),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45200),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45200),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 ee55200 : virtual dd5200 {
+ int e;
+ virtual void bar(); // _ZN7ee552003barEv
+ ~ee55200(); // tgen
+ ee55200(); // tgen
+};
+//SIG(1 ee55200) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee55200 ::bar(){vfunc_called(this, "_ZN7ee552003barEv");}
+ee55200 ::~ee55200(){ note_dtor("ee55200", this);} // tgen
+ee55200 ::ee55200(){ note_ctor("ee55200", this);} // tgen
+
+static void Test_ee55200()
+{
+ extern Class_Descriptor cd_ee55200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee55200, buf);
+ ee55200 *dp, &lv = *(dp=new (buf) ee55200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee55200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(40,20), "ee55200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(40,20), "ee55200");
+ check_base_class_offset(lv, (cc200*)(dd5200*), ABISELECT(32,16), "ee55200");
+ check_base_class_offset(lv, (dd5200*), ABISELECT(16,8), "ee55200");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55200.e");
+ test_class_info(&lv, &cd_ee55200);
+ dp->~ee55200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55200(Test_ee55200, "ee55200", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee55200C1Ev();
+extern void _ZN7ee55200D1Ev();
+Name_Map name_map_ee55200[] = {
+ NSPAIR(_ZN7ee55200C1Ev),
+ NSPAIR(_ZN7ee55200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd5200;
+extern VTBL_ENTRY _ZTI6dd5200[];
+extern VTBL_ENTRY _ZTV6dd5200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5200[];
+static Base_Class bases_ee55200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,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, 0},
+ {&cd_bb00, ABISELECT(40,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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5200, 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 _ZTI7ee55200[];
+extern void _ZN7ee552003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee552003barEv,_ZTv0_n16_N7ee552003barEv)();
+extern void ABISELECT(_ZThn16_N7ee552003barEv,_ZThn8_N7ee552003barEv)() __attribute__((weak));
+extern void _ZN5cc2003fooEv();
+static VTBL_ENTRY vtc_ee55200[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55200[0]),
+ (VTBL_ENTRY)&_ZN7ee552003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee552003barEv,_ZTv0_n16_N7ee552003barEv),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee55200[];
+extern void _ZN6dd52003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5200__7ee55200[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5200[0]),
+ (VTBL_ENTRY)&_ZN6dd52003barEv,
+};
+extern void _ZN5cc2003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc200__6dd5200__7ee55200[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+};
+static VTT_ENTRY vtt_ee55200[] = {
+ {&(_ZTV7ee55200[4]), 4,14},
+ {&(_ZTV7ee55200[9]), 9,14},
+ {&(_ZTV7ee55200[13]), 13,14},
+ {&(_tg__ZTV6dd5200__7ee55200[3]), 3,4},
+ {&(_tg__ZTV5cc200__6dd5200__7ee55200[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee55200[];
+extern VTBL_ENTRY _ZTV7ee55200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55200[];
+static VTBL_ENTRY alt_thunk_names51[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee552003barEv,_ZTv0_n16_N7ee552003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee552003barEv,_ZThn8_N7ee552003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55200 = { "ee55200", // class name
+ bases_ee55200, 4,
+ &(vtc_ee55200[0]), // expected_vtbl_contents
+ &(vtt_ee55200[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee55200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55200),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55200),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names51,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65200 : dd5200 {
+ int e;
+ virtual void foo(); // _ZN7ee652003fooEv
+ virtual void bar(); // _ZN7ee652003barEv
+ ~ee65200(); // tgen
+ ee65200(); // tgen
+};
+//SIG(1 ee65200) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65200 ::foo(){vfunc_called(this, "_ZN7ee652003fooEv");}
+void ee65200 ::bar(){vfunc_called(this, "_ZN7ee652003barEv");}
+ee65200 ::~ee65200(){ note_dtor("ee65200", this);} // tgen
+ee65200 ::ee65200(){ note_ctor("ee65200", this);} // tgen
+
+static void Test_ee65200()
+{
+ extern Class_Descriptor cd_ee65200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee65200, buf);
+ ee65200 *dp, &lv = *(dp=new (buf) ee65200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee65200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(24,16), "ee65200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(24,16), "ee65200");
+ check_base_class_offset(lv, (cc200*)(dd5200*), ABISELECT(16,12), "ee65200");
+ check_base_class_offset(lv, (dd5200*), 0, "ee65200");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65200.e");
+ test_class_info(&lv, &cd_ee65200);
+ dp->~ee65200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65200(Test_ee65200, "ee65200", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee65200C1Ev();
+extern void _ZN7ee65200D1Ev();
+Name_Map name_map_ee65200[] = {
+ NSPAIR(_ZN7ee65200C1Ev),
+ NSPAIR(_ZN7ee65200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd5200;
+extern VTBL_ENTRY _ZTI6dd5200[];
+extern VTBL_ENTRY _ZTV6dd5200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5200[];
+static Base_Class bases_ee65200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee65200[];
+extern void _ZN7ee652003barEv();
+extern void _ZN7ee652003fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee652003fooEv,_ZTv0_n12_N7ee652003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee652003fooEv,_ZThn12_N7ee652003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65200[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65200[0]),
+ (VTBL_ENTRY)&_ZN7ee652003barEv,
+ (VTBL_ENTRY)&_ZN7ee652003fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee652003fooEv,_ZTv0_n12_N7ee652003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee65200[];
+extern void _ZN6dd52003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5200__7ee65200[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5200[0]),
+ (VTBL_ENTRY)&_ZN6dd52003barEv,
+};
+extern void _ZN5cc2003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc200__6dd5200__7ee65200[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+};
+static VTT_ENTRY vtt_ee65200[] = {
+ {&(_ZTV7ee65200[3]), 3,9},
+ {&(_tg__ZTV6dd5200__7ee65200[3]), 3,4},
+ {&(_tg__ZTV5cc200__6dd5200__7ee65200[3]), 3,4},
+ {&(_ZTV7ee65200[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee65200[];
+extern VTBL_ENTRY _ZTV7ee65200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65200[];
+static VTBL_ENTRY alt_thunk_names52[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee652003fooEv,_ZTv0_n12_N7ee652003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee652003fooEv,_ZThn12_N7ee652003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65200 = { "ee65200", // class name
+ bases_ee65200, 4,
+ &(vtc_ee65200[0]), // expected_vtbl_contents
+ &(vtt_ee65200[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee65200),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65200),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65200),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names52,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75200 : virtual dd5200 {
+ int e;
+ virtual void foo(); // _ZN7ee752003fooEv
+ virtual void bar(); // _ZN7ee752003barEv
+ ~ee75200(); // tgen
+ ee75200(); // tgen
+};
+//SIG(1 ee75200) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75200 ::foo(){vfunc_called(this, "_ZN7ee752003fooEv");}
+void ee75200 ::bar(){vfunc_called(this, "_ZN7ee752003barEv");}
+ee75200 ::~ee75200(){ note_dtor("ee75200", this);} // tgen
+ee75200 ::ee75200(){ note_ctor("ee75200", this);} // tgen
+
+static void Test_ee75200()
+{
+ extern Class_Descriptor cd_ee75200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee75200, buf);
+ ee75200 *dp, &lv = *(dp=new (buf) ee75200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee75200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(40,20), "ee75200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(40,20), "ee75200");
+ check_base_class_offset(lv, (cc200*)(dd5200*), ABISELECT(32,16), "ee75200");
+ check_base_class_offset(lv, (dd5200*), ABISELECT(16,8), "ee75200");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75200.e");
+ test_class_info(&lv, &cd_ee75200);
+ dp->~ee75200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75200(Test_ee75200, "ee75200", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee75200C1Ev();
+extern void _ZN7ee75200D1Ev();
+Name_Map name_map_ee75200[] = {
+ NSPAIR(_ZN7ee75200C1Ev),
+ NSPAIR(_ZN7ee75200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd5200;
+extern VTBL_ENTRY _ZTI6dd5200[];
+extern VTBL_ENTRY _ZTV6dd5200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5200[];
+static Base_Class bases_ee75200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,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, 0},
+ {&cd_bb00, ABISELECT(40,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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5200, 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 _ZTI7ee75200[];
+extern void _ZN7ee752003fooEv();
+extern void _ZN7ee752003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee752003barEv,_ZTv0_n16_N7ee752003barEv)();
+extern void ABISELECT(_ZThn16_N7ee752003barEv,_ZThn8_N7ee752003barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee752003fooEv,_ZTv0_n12_N7ee752003fooEv)();
+extern void ABISELECT(_ZThn32_N7ee752003fooEv,_ZThn16_N7ee752003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75200[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75200[0]),
+ (VTBL_ENTRY)&_ZN7ee752003fooEv,
+ (VTBL_ENTRY)&_ZN7ee752003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee752003barEv,_ZTv0_n16_N7ee752003barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee752003fooEv,_ZTv0_n12_N7ee752003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee75200[];
+extern void _ZN6dd52003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5200__7ee75200[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5200[0]),
+ (VTBL_ENTRY)&_ZN6dd52003barEv,
+};
+extern void _ZN5cc2003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc200__6dd5200__7ee75200[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+};
+static VTT_ENTRY vtt_ee75200[] = {
+ {&(_ZTV7ee75200[4]), 4,15},
+ {&(_ZTV7ee75200[10]), 10,15},
+ {&(_ZTV7ee75200[14]), 14,15},
+ {&(_tg__ZTV6dd5200__7ee75200[3]), 3,4},
+ {&(_tg__ZTV5cc200__6dd5200__7ee75200[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee75200[];
+extern VTBL_ENTRY _ZTV7ee75200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75200[];
+static VTBL_ENTRY alt_thunk_names53[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee752003fooEv,_ZTv0_n12_N7ee752003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee752003fooEv,_ZThn16_N7ee752003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee752003barEv,_ZTv0_n16_N7ee752003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee752003barEv,_ZThn8_N7ee752003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75200 = { "ee75200", // class name
+ bases_ee75200, 4,
+ &(vtc_ee75200[0]), // expected_vtbl_contents
+ &(vtt_ee75200[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee75200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75200),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75200),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names53,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6200 : cc200 {
+ int d;
+ virtual void bar(); // _ZN6dd62003barEv
+ virtual void foo(); // _ZN6dd62003fooEv
+ ~dd6200(); // tgen
+ dd6200(); // tgen
+};
+//SIG(-1 dd6200) C1{ BC2{ BC3{ BC4{ Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void dd6200 ::bar(){vfunc_called(this, "_ZN6dd62003barEv");}
+void dd6200 ::foo(){vfunc_called(this, "_ZN6dd62003fooEv");}
+dd6200 ::~dd6200(){ note_dtor("dd6200", this);} // tgen
+dd6200 ::dd6200(){ note_ctor("dd6200", this);} // tgen
+
+static void Test_dd6200()
+{
+ extern Class_Descriptor cd_dd6200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd6200, buf);
+ dd6200 *dp, &lv = *(dp=new (buf) dd6200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd6200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(8,4), "dd6200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(8,4), "dd6200");
+ check_base_class_offset(lv, (cc200*), 0, "dd6200");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd6200.d");
+ test_class_info(&lv, &cd_dd6200);
+ dp->~dd6200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6200(Test_dd6200, "dd6200", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd6200C1Ev();
+extern void _ZN6dd6200D1Ev();
+Name_Map name_map_dd6200[] = {
+ NSPAIR(_ZN6dd6200C1Ev),
+ NSPAIR(_ZN6dd6200D1Ev),
+ {0,0}
+};
[... 258770 lines stripped ...]
More information about the llvm-commits
mailing list