[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_ksc3.x
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/ABI-Testsuite/test/s2_6/T_ksc3.x?rev=214126&view=auto
==============================================================================
--- test-suite/trunk/ABI-Testsuite/test/s2_6/T_ksc3.x (added)
+++ test-suite/trunk/ABI-Testsuite/test/s2_6/T_ksc3.x Mon Jul 28 16:20:34 2014
@@ -0,0 +1,390196 @@
+// 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 bb30 : virtual aa0 {
+ int b;
+ virtual void foo(); // _ZN4bb303fooEv
+ ~bb30(); // tgen
+ bb30(); // tgen
+};
+//SIG(-1 bb30) C1{ VBC2{ Fi} v1 Fi}
+
+
+void bb30 ::foo(){vfunc_called(this, "_ZN4bb303fooEv");}
+bb30 ::~bb30(){ note_dtor("bb30", this);} // tgen
+bb30 ::bb30(){ note_ctor("bb30", this);} // tgen
+
+static void Test_bb30()
+{
+ extern Class_Descriptor cd_bb30;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(3,4)];
+ init_test(&cd_bb30, buf);
+ bb30 *dp, &lv = *(dp=new (buf) bb30());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,12), "sizeof(bb30)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb30)");
+ check_base_class_offset(lv, (aa0*), ABISELECT(12,8), "bb30");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb30.b");
+ test_class_info(&lv, &cd_bb30);
+ dp->~bb30();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb30(Test_bb30, "bb30", ABISELECT(16,12));
+
+#else // __cplusplus
+
+extern void _ZN4bb30C1Ev();
+extern void _ZN4bb30D1Ev();
+Name_Map name_map_bb30[] = {
+ NSPAIR(_ZN4bb30C1Ev),
+ NSPAIR(_ZN4bb30D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+static Base_Class bases_bb30[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(12,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4bb30[];
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY vtc_bb30[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern VTBL_ENTRY _ZTV4bb30[];
+static VTT_ENTRY vtt_bb30[] = {
+ {&(_ZTV4bb30[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+Class_Descriptor cd_bb30 = { "bb30", // class name
+ bases_bb30, 1,
+ &(vtc_bb30[0]), // expected_vtbl_contents
+ &(vtt_bb30[0]), // expected_vtt_contents
+ ABISELECT(16,12), // object size
+ NSPAIRA(_ZTI4bb30),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV4bb30),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4bb30),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 cc030 : bb30 {
+ int c;
+ ~cc030(); // tgen
+ cc030(); // tgen
+};
+//SIG(-1 cc030) C1{ BC2{ VBC3{ Fi} v1 Fi} Fi}
+
+
+cc030 ::~cc030(){ note_dtor("cc030", this);} // tgen
+cc030 ::cc030(){ note_ctor("cc030", this);} // tgen
+
+static void Test_cc030()
+{
+ extern Class_Descriptor cd_cc030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,5)];
+ init_test(&cd_cc030, buf);
+ cc030 *dp, &lv = *(dp=new (buf) cc030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,16), "sizeof(cc030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc030)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(16,12), "cc030");
+ check_base_class_offset(lv, (bb30*), 0, "cc030");
+ check_field_offset(lv, c, ABISELECT(12,8), "cc030.c");
+ test_class_info(&lv, &cd_cc030);
+ dp->~cc030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc030(Test_cc030, "cc030", ABISELECT(24,16));
+
+#else // __cplusplus
+
+extern void _ZN5cc030C1Ev();
+extern void _ZN5cc030D1Ev();
+Name_Map name_map_cc030[] = {
+ NSPAIR(_ZN5cc030C1Ev),
+ NSPAIR(_ZN5cc030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+static Base_Class bases_cc030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI5cc030[];
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY vtc_cc030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern VTBL_ENTRY _ZTV5cc030[];
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_cc030[] = {
+ {&(_ZTV5cc030[3]), 3,4},
+ {&(_tg__ZTV4bb30__5cc030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+Class_Descriptor cd_cc030 = { "cc030", // class name
+ bases_cc030, 2,
+ &(vtc_cc030[0]), // expected_vtbl_contents
+ &(vtt_cc030[0]), // expected_vtt_contents
+ ABISELECT(24,16), // object size
+ NSPAIRA(_ZTI5cc030),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV5cc030),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5cc030),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 dd0030 : cc030 {
+ int d;
+ ~dd0030(); // tgen
+ dd0030(); // tgen
+};
+//SIG(-1 dd0030) C1{ BC2{ BC3{ VBC4{ Fi} v1 Fi} Fi} Fi}
+
+
+dd0030 ::~dd0030(){ note_dtor("dd0030", this);} // tgen
+dd0030 ::dd0030(){ note_ctor("dd0030", this);} // tgen
+
+static void Test_dd0030()
+{
+ extern Class_Descriptor cd_dd0030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd0030, buf);
+ dd0030 *dp, &lv = *(dp=new (buf) dd0030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd0030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*), ABISELECT(20,16), "dd0030");
+ check_base_class_offset(lv, (bb30*)(cc030*), 0, "dd0030");
+ check_base_class_offset(lv, (cc030*), 0, "dd0030");
+ check_field_offset(lv, d, ABISELECT(16,12), "dd0030.d");
+ test_class_info(&lv, &cd_dd0030);
+ dp->~dd0030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0030(Test_dd0030, "dd0030", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd0030C1Ev();
+extern void _ZN6dd0030D1Ev();
+Name_Map name_map_dd0030[] = {
+ NSPAIR(_ZN6dd0030C1Ev),
+ NSPAIR(_ZN6dd0030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+static Base_Class bases_dd0030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd0030[];
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY vtc_dd0030[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd0030[];
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc030__6dd0030[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc030__6dd0030[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_dd0030[] = {
+ {&(_ZTV6dd0030[3]), 3,4},
+ {&(_tg__ZTV5cc030__6dd0030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc030__6dd0030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd0030[];
+extern VTBL_ENTRY _ZTV6dd0030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0030[];
+Class_Descriptor cd_dd0030 = { "dd0030", // class name
+ bases_dd0030, 3,
+ &(vtc_dd0030[0]), // expected_vtbl_contents
+ &(vtt_dd0030[0]), // expected_vtt_contents
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd0030),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0030),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd0030),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 ee00030 : dd0030 {
+ int e;
+ ~ee00030(); // tgen
+ ee00030(); // tgen
+};
+//SIG(1 ee00030) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} Fi} Fi}
+
+
+ee00030 ::~ee00030(){ note_dtor("ee00030", this);} // tgen
+ee00030 ::ee00030(){ note_ctor("ee00030", this);} // tgen
+
+static void Test_ee00030()
+{
+ extern Class_Descriptor cd_ee00030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee00030, buf);
+ ee00030 *dp, &lv = *(dp=new (buf) ee00030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee00030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*)(dd0030*), ABISELECT(24,20), "ee00030");
+ check_base_class_offset(lv, (bb30*)(cc030*)(dd0030*), 0, "ee00030");
+ check_base_class_offset(lv, (cc030*)(dd0030*), 0, "ee00030");
+ check_base_class_offset(lv, (dd0030*), 0, "ee00030");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee00030.e");
+ test_class_info(&lv, &cd_ee00030);
+ dp->~ee00030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00030(Test_ee00030, "ee00030", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee00030C1Ev();
+extern void _ZN7ee00030D1Ev();
+Name_Map name_map_ee00030[] = {
+ NSPAIR(_ZN7ee00030C1Ev),
+ NSPAIR(_ZN7ee00030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+extern Class_Descriptor cd_dd0030;
+extern VTBL_ENTRY _ZTI6dd0030[];
+extern VTBL_ENTRY _ZTV6dd0030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0030[];
+static Base_Class bases_ee00030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0030, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00030[];
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY vtc_ee00030[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee00030[];
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0030__7ee00030[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc0306dd0030__7ee00030[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc0306dd0030__7ee00030[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee00030[] = {
+ {&(_ZTV7ee00030[3]), 3,4},
+ {&(_tg__ZTV6dd0030__7ee00030[3]), 3,4},
+ {&(_tg__ZTV5cc0306dd0030__7ee00030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc0306dd0030__7ee00030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee00030[];
+extern VTBL_ENTRY _ZTV7ee00030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee00030[];
+Class_Descriptor cd_ee00030 = { "ee00030", // class name
+ bases_ee00030, 4,
+ &(vtc_ee00030[0]), // expected_vtbl_contents
+ &(vtt_ee00030[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee00030),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00030),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee00030),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee10030 : virtual dd0030 {
+ int e;
+ ~ee10030(); // tgen
+ ee10030(); // tgen
+};
+//SIG(1 ee10030) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} Fi} Fi}
+
+
+ee10030 ::~ee10030(){ note_dtor("ee10030", this);} // tgen
+ee10030 ::ee10030(){ note_ctor("ee10030", this);} // tgen
+
+static void Test_ee10030()
+{
+ extern Class_Descriptor cd_ee10030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee10030, buf);
+ ee10030 *dp, &lv = *(dp=new (buf) ee10030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee10030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*)(dd0030*), ABISELECT(36,24), "ee10030");
+ check_base_class_offset(lv, (bb30*)(cc030*)(dd0030*), ABISELECT(16,8), "ee10030");
+ check_base_class_offset(lv, (cc030*)(dd0030*), ABISELECT(16,8), "ee10030");
+ check_base_class_offset(lv, (dd0030*), ABISELECT(16,8), "ee10030");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10030.e");
+ test_class_info(&lv, &cd_ee10030);
+ dp->~ee10030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10030(Test_ee10030, "ee10030", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee10030C1Ev();
+extern void _ZN7ee10030D1Ev();
+Name_Map name_map_ee10030[] = {
+ NSPAIR(_ZN7ee10030C1Ev),
+ NSPAIR(_ZN7ee10030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+extern Class_Descriptor cd_dd0030;
+extern VTBL_ENTRY _ZTI6dd0030[];
+extern VTBL_ENTRY _ZTV6dd0030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0030[];
+static Base_Class bases_ee10030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0030, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee10030[];
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY vtc_ee10030[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10030[0]),
+ 0,
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee10030[];
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0030__7ee10030[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc0306dd0030__7ee10030[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc0306dd0030__7ee10030[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee10030[] = {
+ {&(_ZTV7ee10030[4]), 4,9},
+ {&(_ZTV7ee10030[8]), 8,9},
+ {&(_tg__ZTV6dd0030__7ee10030[3]), 3,4},
+ {&(_tg__ZTV5cc0306dd0030__7ee10030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc0306dd0030__7ee10030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee10030[];
+extern VTBL_ENTRY _ZTV7ee10030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10030[];
+Class_Descriptor cd_ee10030 = { "ee10030", // class name
+ bases_ee10030, 4,
+ &(vtc_ee10030[0]), // expected_vtbl_contents
+ &(vtt_ee10030[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee10030),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10030),9, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10030),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee20030 : dd0030 {
+ int e;
+ virtual void foo(); // _ZN7ee200303fooEv
+ ~ee20030(); // tgen
+ ee20030(); // tgen
+};
+//SIG(1 ee20030) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee20030 ::foo(){vfunc_called(this, "_ZN7ee200303fooEv");}
+ee20030 ::~ee20030(){ note_dtor("ee20030", this);} // tgen
+ee20030 ::ee20030(){ note_ctor("ee20030", this);} // tgen
+
+static void Test_ee20030()
+{
+ extern Class_Descriptor cd_ee20030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee20030, buf);
+ ee20030 *dp, &lv = *(dp=new (buf) ee20030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee20030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*)(dd0030*), ABISELECT(24,20), "ee20030");
+ check_base_class_offset(lv, (bb30*)(cc030*)(dd0030*), 0, "ee20030");
+ check_base_class_offset(lv, (cc030*)(dd0030*), 0, "ee20030");
+ check_base_class_offset(lv, (dd0030*), 0, "ee20030");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee20030.e");
+ test_class_info(&lv, &cd_ee20030);
+ dp->~ee20030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20030(Test_ee20030, "ee20030", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee20030C1Ev();
+extern void _ZN7ee20030D1Ev();
+Name_Map name_map_ee20030[] = {
+ NSPAIR(_ZN7ee20030C1Ev),
+ NSPAIR(_ZN7ee20030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+extern Class_Descriptor cd_dd0030;
+extern VTBL_ENTRY _ZTI6dd0030[];
+extern VTBL_ENTRY _ZTV6dd0030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0030[];
+static Base_Class bases_ee20030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0030, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20030[];
+extern void _ZN7ee200303fooEv();
+static VTBL_ENTRY vtc_ee20030[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20030[0]),
+ (VTBL_ENTRY)&_ZN7ee200303fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee20030[];
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0030__7ee20030[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc0306dd0030__7ee20030[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc0306dd0030__7ee20030[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee20030[] = {
+ {&(_ZTV7ee20030[3]), 3,4},
+ {&(_tg__ZTV6dd0030__7ee20030[3]), 3,4},
+ {&(_tg__ZTV5cc0306dd0030__7ee20030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc0306dd0030__7ee20030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee20030[];
+extern VTBL_ENTRY _ZTV7ee20030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee20030[];
+Class_Descriptor cd_ee20030 = { "ee20030", // class name
+ bases_ee20030, 4,
+ &(vtc_ee20030[0]), // expected_vtbl_contents
+ &(vtt_ee20030[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee20030),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20030),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee20030),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee30030 : virtual dd0030 {
+ int e;
+ virtual void foo(); // _ZN7ee300303fooEv
+ ~ee30030(); // tgen
+ ee30030(); // tgen
+};
+//SIG(1 ee30030) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee30030 ::foo(){vfunc_called(this, "_ZN7ee300303fooEv");}
+ee30030 ::~ee30030(){ note_dtor("ee30030", this);} // tgen
+ee30030 ::ee30030(){ note_ctor("ee30030", this);} // tgen
+
+static void Test_ee30030()
+{
+ extern Class_Descriptor cd_ee30030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee30030, buf);
+ ee30030 *dp, &lv = *(dp=new (buf) ee30030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee30030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*)(dd0030*), ABISELECT(36,24), "ee30030");
+ check_base_class_offset(lv, (bb30*)(cc030*)(dd0030*), ABISELECT(16,8), "ee30030");
+ check_base_class_offset(lv, (cc030*)(dd0030*), ABISELECT(16,8), "ee30030");
+ check_base_class_offset(lv, (dd0030*), ABISELECT(16,8), "ee30030");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30030.e");
+ test_class_info(&lv, &cd_ee30030);
+ dp->~ee30030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30030(Test_ee30030, "ee30030", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee30030C1Ev();
+extern void _ZN7ee30030D1Ev();
+Name_Map name_map_ee30030[] = {
+ NSPAIR(_ZN7ee30030C1Ev),
+ NSPAIR(_ZN7ee30030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+extern Class_Descriptor cd_dd0030;
+extern VTBL_ENTRY _ZTI6dd0030[];
+extern VTBL_ENTRY _ZTV6dd0030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0030[];
+static Base_Class bases_ee30030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0030, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee30030[];
+extern void _ZN7ee300303fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee300303fooEv,_ZTv0_n16_N7ee300303fooEv)();
+extern void ABISELECT(_ZThn16_N7ee300303fooEv,_ZThn8_N7ee300303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee30030[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30030[0]),
+ (VTBL_ENTRY)&_ZN7ee300303fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30030[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee300303fooEv,_ZTv0_n16_N7ee300303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee30030[];
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0030__7ee30030[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc0306dd0030__7ee30030[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc0306dd0030__7ee30030[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee30030[] = {
+ {&(_ZTV7ee30030[4]), 4,10},
+ {&(_ZTV7ee30030[9]), 9,10},
+ {&(_tg__ZTV6dd0030__7ee30030[3]), 3,4},
+ {&(_tg__ZTV5cc0306dd0030__7ee30030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc0306dd0030__7ee30030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee30030[];
+extern VTBL_ENTRY _ZTV7ee30030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30030[];
+static VTBL_ENTRY alt_thunk_names1[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee300303fooEv,_ZTv0_n16_N7ee300303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee300303fooEv,_ZThn8_N7ee300303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30030 = { "ee30030", // class name
+ bases_ee30030, 4,
+ &(vtc_ee30030[0]), // expected_vtbl_contents
+ &(vtt_ee30030[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee30030),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30030),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30030),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40030 : dd0030 {
+ int e;
+ virtual void bar(); // _ZN7ee400303barEv
+ ~ee40030(); // tgen
+ ee40030(); // tgen
+};
+//SIG(1 ee40030) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee40030 ::bar(){vfunc_called(this, "_ZN7ee400303barEv");}
+ee40030 ::~ee40030(){ note_dtor("ee40030", this);} // tgen
+ee40030 ::ee40030(){ note_ctor("ee40030", this);} // tgen
+
+static void Test_ee40030()
+{
+ extern Class_Descriptor cd_ee40030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee40030, buf);
+ ee40030 *dp, &lv = *(dp=new (buf) ee40030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee40030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*)(dd0030*), ABISELECT(24,20), "ee40030");
+ check_base_class_offset(lv, (bb30*)(cc030*)(dd0030*), 0, "ee40030");
+ check_base_class_offset(lv, (cc030*)(dd0030*), 0, "ee40030");
+ check_base_class_offset(lv, (dd0030*), 0, "ee40030");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee40030.e");
+ test_class_info(&lv, &cd_ee40030);
+ dp->~ee40030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40030(Test_ee40030, "ee40030", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee40030C1Ev();
+extern void _ZN7ee40030D1Ev();
+Name_Map name_map_ee40030[] = {
+ NSPAIR(_ZN7ee40030C1Ev),
+ NSPAIR(_ZN7ee40030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+extern Class_Descriptor cd_dd0030;
+extern VTBL_ENTRY _ZTI6dd0030[];
+extern VTBL_ENTRY _ZTV6dd0030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0030[];
+static Base_Class bases_ee40030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0030, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40030[];
+extern void _ZN4bb303fooEv();
+extern void _ZN7ee400303barEv();
+static VTBL_ENTRY vtc_ee40030[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+ (VTBL_ENTRY)&_ZN7ee400303barEv,
+};
+extern VTBL_ENTRY _ZTV7ee40030[];
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0030__7ee40030[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc0306dd0030__7ee40030[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc0306dd0030__7ee40030[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee40030[] = {
+ {&(_ZTV7ee40030[3]), 3,5},
+ {&(_tg__ZTV6dd0030__7ee40030[3]), 3,4},
+ {&(_tg__ZTV5cc0306dd0030__7ee40030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc0306dd0030__7ee40030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee40030[];
+extern VTBL_ENTRY _ZTV7ee40030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee40030[];
+Class_Descriptor cd_ee40030 = { "ee40030", // class name
+ bases_ee40030, 4,
+ &(vtc_ee40030[0]), // expected_vtbl_contents
+ &(vtt_ee40030[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee40030),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40030),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee40030),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee50030 : virtual dd0030 {
+ int e;
+ virtual void bar(); // _ZN7ee500303barEv
+ ~ee50030(); // tgen
+ ee50030(); // tgen
+};
+//SIG(1 ee50030) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee50030 ::bar(){vfunc_called(this, "_ZN7ee500303barEv");}
+ee50030 ::~ee50030(){ note_dtor("ee50030", this);} // tgen
+ee50030 ::ee50030(){ note_ctor("ee50030", this);} // tgen
+
+static void Test_ee50030()
+{
+ extern Class_Descriptor cd_ee50030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee50030, buf);
+ ee50030 *dp, &lv = *(dp=new (buf) ee50030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee50030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*)(dd0030*), ABISELECT(36,24), "ee50030");
+ check_base_class_offset(lv, (bb30*)(cc030*)(dd0030*), ABISELECT(16,8), "ee50030");
+ check_base_class_offset(lv, (cc030*)(dd0030*), ABISELECT(16,8), "ee50030");
+ check_base_class_offset(lv, (dd0030*), ABISELECT(16,8), "ee50030");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50030.e");
+ test_class_info(&lv, &cd_ee50030);
+ dp->~ee50030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50030(Test_ee50030, "ee50030", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee50030C1Ev();
+extern void _ZN7ee50030D1Ev();
+Name_Map name_map_ee50030[] = {
+ NSPAIR(_ZN7ee50030C1Ev),
+ NSPAIR(_ZN7ee50030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+extern Class_Descriptor cd_dd0030;
+extern VTBL_ENTRY _ZTI6dd0030[];
+extern VTBL_ENTRY _ZTV6dd0030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0030[];
+static Base_Class bases_ee50030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0030, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee50030[];
+extern void _ZN7ee500303barEv();
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY vtc_ee50030[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50030[0]),
+ (VTBL_ENTRY)&_ZN7ee500303barEv,
+ 0,
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee50030[];
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0030__7ee50030[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc0306dd0030__7ee50030[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc0306dd0030__7ee50030[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee50030[] = {
+ {&(_ZTV7ee50030[4]), 4,10},
+ {&(_ZTV7ee50030[9]), 9,10},
+ {&(_tg__ZTV6dd0030__7ee50030[3]), 3,4},
+ {&(_tg__ZTV5cc0306dd0030__7ee50030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc0306dd0030__7ee50030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee50030[];
+extern VTBL_ENTRY _ZTV7ee50030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50030[];
+Class_Descriptor cd_ee50030 = { "ee50030", // class name
+ bases_ee50030, 4,
+ &(vtc_ee50030[0]), // expected_vtbl_contents
+ &(vtt_ee50030[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee50030),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50030),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50030),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60030 : dd0030 {
+ int e;
+ virtual void foo(); // _ZN7ee600303fooEv
+ virtual void bar(); // _ZN7ee600303barEv
+ ~ee60030(); // tgen
+ ee60030(); // tgen
+};
+//SIG(1 ee60030) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee60030 ::foo(){vfunc_called(this, "_ZN7ee600303fooEv");}
+void ee60030 ::bar(){vfunc_called(this, "_ZN7ee600303barEv");}
+ee60030 ::~ee60030(){ note_dtor("ee60030", this);} // tgen
+ee60030 ::ee60030(){ note_ctor("ee60030", this);} // tgen
+
+static void Test_ee60030()
+{
+ extern Class_Descriptor cd_ee60030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee60030, buf);
+ ee60030 *dp, &lv = *(dp=new (buf) ee60030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee60030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*)(dd0030*), ABISELECT(24,20), "ee60030");
+ check_base_class_offset(lv, (bb30*)(cc030*)(dd0030*), 0, "ee60030");
+ check_base_class_offset(lv, (cc030*)(dd0030*), 0, "ee60030");
+ check_base_class_offset(lv, (dd0030*), 0, "ee60030");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee60030.e");
+ test_class_info(&lv, &cd_ee60030);
+ dp->~ee60030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60030(Test_ee60030, "ee60030", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee60030C1Ev();
+extern void _ZN7ee60030D1Ev();
+Name_Map name_map_ee60030[] = {
+ NSPAIR(_ZN7ee60030C1Ev),
+ NSPAIR(_ZN7ee60030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+extern Class_Descriptor cd_dd0030;
+extern VTBL_ENTRY _ZTI6dd0030[];
+extern VTBL_ENTRY _ZTV6dd0030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0030[];
+static Base_Class bases_ee60030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0030, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60030[];
+extern void _ZN7ee600303fooEv();
+extern void _ZN7ee600303barEv();
+static VTBL_ENTRY vtc_ee60030[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60030[0]),
+ (VTBL_ENTRY)&_ZN7ee600303fooEv,
+ (VTBL_ENTRY)&_ZN7ee600303barEv,
+};
+extern VTBL_ENTRY _ZTV7ee60030[];
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0030__7ee60030[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc0306dd0030__7ee60030[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc0306dd0030__7ee60030[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee60030[] = {
+ {&(_ZTV7ee60030[3]), 3,5},
+ {&(_tg__ZTV6dd0030__7ee60030[3]), 3,4},
+ {&(_tg__ZTV5cc0306dd0030__7ee60030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc0306dd0030__7ee60030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee60030[];
+extern VTBL_ENTRY _ZTV7ee60030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee60030[];
+Class_Descriptor cd_ee60030 = { "ee60030", // class name
+ bases_ee60030, 4,
+ &(vtc_ee60030[0]), // expected_vtbl_contents
+ &(vtt_ee60030[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee60030),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60030),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee60030),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee70030 : virtual dd0030 {
+ int e;
+ virtual void foo(); // _ZN7ee700303fooEv
+ virtual void bar(); // _ZN7ee700303barEv
+ ~ee70030(); // tgen
+ ee70030(); // tgen
+};
+//SIG(1 ee70030) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee70030 ::foo(){vfunc_called(this, "_ZN7ee700303fooEv");}
+void ee70030 ::bar(){vfunc_called(this, "_ZN7ee700303barEv");}
+ee70030 ::~ee70030(){ note_dtor("ee70030", this);} // tgen
+ee70030 ::ee70030(){ note_ctor("ee70030", this);} // tgen
+
+static void Test_ee70030()
+{
+ extern Class_Descriptor cd_ee70030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee70030, buf);
+ ee70030 *dp, &lv = *(dp=new (buf) ee70030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee70030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*)(dd0030*), ABISELECT(36,24), "ee70030");
+ check_base_class_offset(lv, (bb30*)(cc030*)(dd0030*), ABISELECT(16,8), "ee70030");
+ check_base_class_offset(lv, (cc030*)(dd0030*), ABISELECT(16,8), "ee70030");
+ check_base_class_offset(lv, (dd0030*), ABISELECT(16,8), "ee70030");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70030.e");
+ test_class_info(&lv, &cd_ee70030);
+ dp->~ee70030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70030(Test_ee70030, "ee70030", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee70030C1Ev();
+extern void _ZN7ee70030D1Ev();
+Name_Map name_map_ee70030[] = {
+ NSPAIR(_ZN7ee70030C1Ev),
+ NSPAIR(_ZN7ee70030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+extern Class_Descriptor cd_dd0030;
+extern VTBL_ENTRY _ZTI6dd0030[];
+extern VTBL_ENTRY _ZTV6dd0030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0030[];
+static Base_Class bases_ee70030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0030, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee70030[];
+extern void _ZN7ee700303fooEv();
+extern void _ZN7ee700303barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee700303fooEv,_ZTv0_n16_N7ee700303fooEv)();
+extern void ABISELECT(_ZThn16_N7ee700303fooEv,_ZThn8_N7ee700303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70030[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70030[0]),
+ (VTBL_ENTRY)&_ZN7ee700303fooEv,
+ (VTBL_ENTRY)&_ZN7ee700303barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70030[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee700303fooEv,_ZTv0_n16_N7ee700303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee70030[];
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0030__7ee70030[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc0306dd0030__7ee70030[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc0306dd0030__7ee70030[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee70030[] = {
+ {&(_ZTV7ee70030[4]), 4,11},
+ {&(_ZTV7ee70030[10]), 10,11},
+ {&(_tg__ZTV6dd0030__7ee70030[3]), 3,4},
+ {&(_tg__ZTV5cc0306dd0030__7ee70030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc0306dd0030__7ee70030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee70030[];
+extern VTBL_ENTRY _ZTV7ee70030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70030[];
+static VTBL_ENTRY alt_thunk_names2[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee700303fooEv,_ZTv0_n16_N7ee700303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee700303fooEv,_ZThn8_N7ee700303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70030 = { "ee70030", // class name
+ bases_ee70030, 4,
+ &(vtc_ee70030[0]), // expected_vtbl_contents
+ &(vtt_ee70030[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee70030),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70030),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70030),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names2,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1030 : virtual cc030 {
+ int d;
+ ~dd1030(); // tgen
+ dd1030(); // tgen
+};
+//SIG(-1 dd1030) C1{ VBC2{ BC3{ VBC4{ Fi} v1 Fi} Fi} Fi}
+
+
+dd1030 ::~dd1030(){ note_dtor("dd1030", this);} // tgen
+dd1030 ::dd1030(){ note_ctor("dd1030", this);} // tgen
+
+static void Test_dd1030()
+{
+ extern Class_Descriptor cd_dd1030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd1030, buf);
+ dd1030 *dp, &lv = *(dp=new (buf) dd1030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd1030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*), ABISELECT(32,20), "dd1030");
+ check_base_class_offset(lv, (bb30*)(cc030*), ABISELECT(16,8), "dd1030");
+ check_base_class_offset(lv, (cc030*), ABISELECT(16,8), "dd1030");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1030.d");
+ test_class_info(&lv, &cd_dd1030);
+ dp->~dd1030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1030(Test_dd1030, "dd1030", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd1030C1Ev();
+extern void _ZN6dd1030D1Ev();
+Name_Map name_map_dd1030[] = {
+ NSPAIR(_ZN6dd1030C1Ev),
+ NSPAIR(_ZN6dd1030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+static Base_Class bases_dd1030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, 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 _ZTI6dd1030[];
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY vtc_dd1030[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1030[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd1030[];
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc030__6dd1030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc030__6dd1030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_dd1030[] = {
+ {&(_ZTV6dd1030[4]), 4,9},
+ {&(_ZTV6dd1030[8]), 8,9},
+ {&(_tg__ZTV5cc030__6dd1030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc030__6dd1030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd1030[];
+extern VTBL_ENTRY _ZTV6dd1030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1030[];
+Class_Descriptor cd_dd1030 = { "dd1030", // class name
+ bases_dd1030, 3,
+ &(vtc_dd1030[0]), // expected_vtbl_contents
+ &(vtt_dd1030[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd1030),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1030),9, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1030),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 ee01030 : dd1030 {
+ int e;
+ ~ee01030(); // tgen
+ ee01030(); // tgen
+};
+//SIG(1 ee01030) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} Fi} Fi}
+
+
+ee01030 ::~ee01030(){ note_dtor("ee01030", this);} // tgen
+ee01030 ::ee01030(){ note_ctor("ee01030", this);} // tgen
+
+static void Test_ee01030()
+{
+ extern Class_Descriptor cd_ee01030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee01030, buf);
+ ee01030 *dp, &lv = *(dp=new (buf) ee01030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee01030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*), ABISELECT(32,24), "ee01030");
+ check_base_class_offset(lv, (bb30*)(cc030*), ABISELECT(16,12), "ee01030");
+ check_base_class_offset(lv, (cc030*)(dd1030*), ABISELECT(16,12), "ee01030");
+ check_base_class_offset(lv, (dd1030*), 0, "ee01030");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01030.e");
+ test_class_info(&lv, &cd_ee01030);
+ dp->~ee01030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01030(Test_ee01030, "ee01030", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee01030C1Ev();
+extern void _ZN7ee01030D1Ev();
+Name_Map name_map_ee01030[] = {
+ NSPAIR(_ZN7ee01030C1Ev),
+ NSPAIR(_ZN7ee01030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+extern Class_Descriptor cd_dd1030;
+extern VTBL_ENTRY _ZTI6dd1030[];
+extern VTBL_ENTRY _ZTV6dd1030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1030[];
+static Base_Class bases_ee01030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1030, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01030[];
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY vtc_ee01030[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01030[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee01030[];
+static VTBL_ENTRY _tg__ZTV6dd1030__7ee01030[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1030[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc030__6dd1030__7ee01030[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc030__7ee01030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc030__7ee01030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee01030[] = {
+ {&(_ZTV7ee01030[4]), 4,9},
+ {&(_tg__ZTV6dd1030__7ee01030[4]), 4,4},
+ {&(_tg__ZTV5cc030__6dd1030__7ee01030[4]), 4,5},
+ {&(_ZTV7ee01030[8]), 8,9},
+ {&(_tg__ZTV5cc030__7ee01030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc030__7ee01030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee01030[];
+extern VTBL_ENTRY _ZTV7ee01030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01030[];
+Class_Descriptor cd_ee01030 = { "ee01030", // class name
+ bases_ee01030, 4,
+ &(vtc_ee01030[0]), // expected_vtbl_contents
+ &(vtt_ee01030[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee01030),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01030),9, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01030),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee11030 : virtual dd1030 {
+ int e;
+ ~ee11030(); // tgen
+ ee11030(); // tgen
+};
+//SIG(1 ee11030) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} Fi} Fi}
+
+
+ee11030 ::~ee11030(){ note_dtor("ee11030", this);} // tgen
+ee11030 ::ee11030(){ note_ctor("ee11030", this);} // tgen
+
+static void Test_ee11030()
+{
+ extern Class_Descriptor cd_ee11030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee11030, buf);
+ ee11030 *dp, &lv = *(dp=new (buf) ee11030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee11030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*), ABISELECT(48,28), "ee11030");
+ check_base_class_offset(lv, (bb30*)(cc030*), ABISELECT(32,16), "ee11030");
+ check_base_class_offset(lv, (cc030*)(dd1030*), ABISELECT(32,16), "ee11030");
+ check_base_class_offset(lv, (dd1030*), ABISELECT(16,8), "ee11030");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11030.e");
+ test_class_info(&lv, &cd_ee11030);
+ dp->~ee11030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11030(Test_ee11030, "ee11030", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee11030C1Ev();
+extern void _ZN7ee11030D1Ev();
+Name_Map name_map_ee11030[] = {
+ NSPAIR(_ZN7ee11030C1Ev),
+ NSPAIR(_ZN7ee11030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+extern Class_Descriptor cd_dd1030;
+extern VTBL_ENTRY _ZTI6dd1030[];
+extern VTBL_ENTRY _ZTV6dd1030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1030[];
+static Base_Class bases_ee11030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(48,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1030, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee11030[];
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY vtc_ee11030[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11030[0]),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11030[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee11030[];
+static VTBL_ENTRY _tg__ZTV6dd1030__7ee11030[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1030[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc030__6dd1030__7ee11030[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc030__7ee11030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc030__7ee11030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee11030[] = {
+ {&(_ZTV7ee11030[5]), 5,14},
+ {&(_ZTV7ee11030[9]), 9,14},
+ {&(_ZTV7ee11030[13]), 13,14},
+ {&(_tg__ZTV6dd1030__7ee11030[4]), 4,4},
+ {&(_tg__ZTV5cc030__6dd1030__7ee11030[4]), 4,5},
+ {&(_tg__ZTV5cc030__7ee11030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc030__7ee11030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee11030[];
+extern VTBL_ENTRY _ZTV7ee11030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11030[];
+Class_Descriptor cd_ee11030 = { "ee11030", // class name
+ bases_ee11030, 4,
+ &(vtc_ee11030[0]), // expected_vtbl_contents
+ &(vtt_ee11030[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee11030),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11030),14, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11030),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee21030 : dd1030 {
+ int e;
+ virtual void foo(); // _ZN7ee210303fooEv
+ ~ee21030(); // tgen
+ ee21030(); // tgen
+};
+//SIG(1 ee21030) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee21030 ::foo(){vfunc_called(this, "_ZN7ee210303fooEv");}
+ee21030 ::~ee21030(){ note_dtor("ee21030", this);} // tgen
+ee21030 ::ee21030(){ note_ctor("ee21030", this);} // tgen
+
+static void Test_ee21030()
+{
+ extern Class_Descriptor cd_ee21030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee21030, buf);
+ ee21030 *dp, &lv = *(dp=new (buf) ee21030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee21030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*), ABISELECT(32,24), "ee21030");
+ check_base_class_offset(lv, (bb30*)(cc030*), ABISELECT(16,12), "ee21030");
+ check_base_class_offset(lv, (cc030*)(dd1030*), ABISELECT(16,12), "ee21030");
+ check_base_class_offset(lv, (dd1030*), 0, "ee21030");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21030.e");
+ test_class_info(&lv, &cd_ee21030);
+ dp->~ee21030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21030(Test_ee21030, "ee21030", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee21030C1Ev();
+extern void _ZN7ee21030D1Ev();
+Name_Map name_map_ee21030[] = {
+ NSPAIR(_ZN7ee21030C1Ev),
+ NSPAIR(_ZN7ee21030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+extern Class_Descriptor cd_dd1030;
+extern VTBL_ENTRY _ZTI6dd1030[];
+extern VTBL_ENTRY _ZTV6dd1030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1030[];
+static Base_Class bases_ee21030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1030, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21030[];
+extern void _ZN7ee210303fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee210303fooEv,_ZTv0_n16_N7ee210303fooEv)();
+extern void ABISELECT(_ZThn16_N7ee210303fooEv,_ZThn12_N7ee210303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee21030[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21030[0]),
+ (VTBL_ENTRY)&_ZN7ee210303fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21030[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee210303fooEv,_ZTv0_n16_N7ee210303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee21030[];
+static VTBL_ENTRY _tg__ZTV6dd1030__7ee21030[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1030[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc030__6dd1030__7ee21030[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc030__7ee21030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc030__7ee21030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee21030[] = {
+ {&(_ZTV7ee21030[4]), 4,10},
+ {&(_tg__ZTV6dd1030__7ee21030[4]), 4,4},
+ {&(_tg__ZTV5cc030__6dd1030__7ee21030[4]), 4,5},
+ {&(_ZTV7ee21030[9]), 9,10},
+ {&(_tg__ZTV5cc030__7ee21030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc030__7ee21030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee21030[];
+extern VTBL_ENTRY _ZTV7ee21030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21030[];
+static VTBL_ENTRY alt_thunk_names3[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee210303fooEv,_ZTv0_n16_N7ee210303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee210303fooEv,_ZThn12_N7ee210303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21030 = { "ee21030", // class name
+ bases_ee21030, 4,
+ &(vtc_ee21030[0]), // expected_vtbl_contents
+ &(vtt_ee21030[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee21030),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21030),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21030),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names3,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31030 : virtual dd1030 {
+ int e;
+ virtual void foo(); // _ZN7ee310303fooEv
+ ~ee31030(); // tgen
+ ee31030(); // tgen
+};
+//SIG(1 ee31030) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee31030 ::foo(){vfunc_called(this, "_ZN7ee310303fooEv");}
+ee31030 ::~ee31030(){ note_dtor("ee31030", this);} // tgen
+ee31030 ::ee31030(){ note_ctor("ee31030", this);} // tgen
+
+static void Test_ee31030()
+{
+ extern Class_Descriptor cd_ee31030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee31030, buf);
+ ee31030 *dp, &lv = *(dp=new (buf) ee31030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee31030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*), ABISELECT(48,28), "ee31030");
+ check_base_class_offset(lv, (bb30*)(cc030*), ABISELECT(32,16), "ee31030");
+ check_base_class_offset(lv, (cc030*)(dd1030*), ABISELECT(32,16), "ee31030");
+ check_base_class_offset(lv, (dd1030*), ABISELECT(16,8), "ee31030");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31030.e");
+ test_class_info(&lv, &cd_ee31030);
+ dp->~ee31030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31030(Test_ee31030, "ee31030", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee31030C1Ev();
+extern void _ZN7ee31030D1Ev();
+Name_Map name_map_ee31030[] = {
+ NSPAIR(_ZN7ee31030C1Ev),
+ NSPAIR(_ZN7ee31030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+extern Class_Descriptor cd_dd1030;
+extern VTBL_ENTRY _ZTI6dd1030[];
+extern VTBL_ENTRY _ZTV6dd1030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1030[];
+static Base_Class bases_ee31030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(48,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1030, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee31030[];
+extern void _ZN7ee310303fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee310303fooEv,_ZTv0_n16_N7ee310303fooEv)();
+extern void ABISELECT(_ZThn32_N7ee310303fooEv,_ZThn16_N7ee310303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee31030[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31030[0]),
+ (VTBL_ENTRY)&_ZN7ee310303fooEv,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31030[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31030[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee310303fooEv,_ZTv0_n16_N7ee310303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee31030[];
+static VTBL_ENTRY _tg__ZTV6dd1030__7ee31030[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1030[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc030__6dd1030__7ee31030[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc030__7ee31030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc030__7ee31030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee31030[] = {
+ {&(_ZTV7ee31030[5]), 5,15},
+ {&(_ZTV7ee31030[10]), 10,15},
+ {&(_ZTV7ee31030[14]), 14,15},
+ {&(_tg__ZTV6dd1030__7ee31030[4]), 4,4},
+ {&(_tg__ZTV5cc030__6dd1030__7ee31030[4]), 4,5},
+ {&(_tg__ZTV5cc030__7ee31030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc030__7ee31030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee31030[];
+extern VTBL_ENTRY _ZTV7ee31030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31030[];
+static VTBL_ENTRY alt_thunk_names4[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee310303fooEv,_ZTv0_n16_N7ee310303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee310303fooEv,_ZThn16_N7ee310303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31030 = { "ee31030", // class name
+ bases_ee31030, 4,
+ &(vtc_ee31030[0]), // expected_vtbl_contents
+ &(vtt_ee31030[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee31030),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31030),15, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31030),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names4,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41030 : dd1030 {
+ int e;
+ virtual void bar(); // _ZN7ee410303barEv
+ ~ee41030(); // tgen
+ ee41030(); // tgen
+};
+//SIG(1 ee41030) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee41030 ::bar(){vfunc_called(this, "_ZN7ee410303barEv");}
+ee41030 ::~ee41030(){ note_dtor("ee41030", this);} // tgen
+ee41030 ::ee41030(){ note_ctor("ee41030", this);} // tgen
+
+static void Test_ee41030()
+{
+ extern Class_Descriptor cd_ee41030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee41030, buf);
+ ee41030 *dp, &lv = *(dp=new (buf) ee41030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee41030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*), ABISELECT(32,24), "ee41030");
+ check_base_class_offset(lv, (bb30*)(cc030*), ABISELECT(16,12), "ee41030");
+ check_base_class_offset(lv, (cc030*)(dd1030*), ABISELECT(16,12), "ee41030");
+ check_base_class_offset(lv, (dd1030*), 0, "ee41030");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41030.e");
+ test_class_info(&lv, &cd_ee41030);
+ dp->~ee41030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41030(Test_ee41030, "ee41030", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee41030C1Ev();
+extern void _ZN7ee41030D1Ev();
+Name_Map name_map_ee41030[] = {
+ NSPAIR(_ZN7ee41030C1Ev),
+ NSPAIR(_ZN7ee41030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+extern Class_Descriptor cd_dd1030;
+extern VTBL_ENTRY _ZTI6dd1030[];
+extern VTBL_ENTRY _ZTV6dd1030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1030[];
+static Base_Class bases_ee41030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1030, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41030[];
+extern void _ZN7ee410303barEv();
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY vtc_ee41030[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41030[0]),
+ (VTBL_ENTRY)&_ZN7ee410303barEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee41030[];
+static VTBL_ENTRY _tg__ZTV6dd1030__7ee41030[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1030[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc030__6dd1030__7ee41030[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc030__7ee41030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc030__7ee41030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee41030[] = {
+ {&(_ZTV7ee41030[4]), 4,10},
+ {&(_tg__ZTV6dd1030__7ee41030[4]), 4,4},
+ {&(_tg__ZTV5cc030__6dd1030__7ee41030[4]), 4,5},
+ {&(_ZTV7ee41030[9]), 9,10},
+ {&(_tg__ZTV5cc030__7ee41030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc030__7ee41030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee41030[];
+extern VTBL_ENTRY _ZTV7ee41030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41030[];
+Class_Descriptor cd_ee41030 = { "ee41030", // class name
+ bases_ee41030, 4,
+ &(vtc_ee41030[0]), // expected_vtbl_contents
+ &(vtt_ee41030[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee41030),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41030),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41030),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51030 : virtual dd1030 {
+ int e;
+ virtual void bar(); // _ZN7ee510303barEv
+ ~ee51030(); // tgen
+ ee51030(); // tgen
+};
+//SIG(1 ee51030) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee51030 ::bar(){vfunc_called(this, "_ZN7ee510303barEv");}
+ee51030 ::~ee51030(){ note_dtor("ee51030", this);} // tgen
+ee51030 ::ee51030(){ note_ctor("ee51030", this);} // tgen
+
+static void Test_ee51030()
+{
+ extern Class_Descriptor cd_ee51030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee51030, buf);
+ ee51030 *dp, &lv = *(dp=new (buf) ee51030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee51030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*), ABISELECT(48,28), "ee51030");
+ check_base_class_offset(lv, (bb30*)(cc030*), ABISELECT(32,16), "ee51030");
+ check_base_class_offset(lv, (cc030*)(dd1030*), ABISELECT(32,16), "ee51030");
+ check_base_class_offset(lv, (dd1030*), ABISELECT(16,8), "ee51030");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51030.e");
+ test_class_info(&lv, &cd_ee51030);
+ dp->~ee51030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51030(Test_ee51030, "ee51030", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee51030C1Ev();
+extern void _ZN7ee51030D1Ev();
+Name_Map name_map_ee51030[] = {
+ NSPAIR(_ZN7ee51030C1Ev),
+ NSPAIR(_ZN7ee51030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+extern Class_Descriptor cd_dd1030;
+extern VTBL_ENTRY _ZTI6dd1030[];
+extern VTBL_ENTRY _ZTV6dd1030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1030[];
+static Base_Class bases_ee51030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(48,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1030, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee51030[];
+extern void _ZN7ee510303barEv();
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY vtc_ee51030[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51030[0]),
+ (VTBL_ENTRY)&_ZN7ee510303barEv,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51030[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee51030[];
+static VTBL_ENTRY _tg__ZTV6dd1030__7ee51030[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1030[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc030__6dd1030__7ee51030[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc030__7ee51030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc030__7ee51030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee51030[] = {
+ {&(_ZTV7ee51030[5]), 5,15},
+ {&(_ZTV7ee51030[10]), 10,15},
+ {&(_ZTV7ee51030[14]), 14,15},
+ {&(_tg__ZTV6dd1030__7ee51030[4]), 4,4},
+ {&(_tg__ZTV5cc030__6dd1030__7ee51030[4]), 4,5},
+ {&(_tg__ZTV5cc030__7ee51030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc030__7ee51030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee51030[];
+extern VTBL_ENTRY _ZTV7ee51030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51030[];
+Class_Descriptor cd_ee51030 = { "ee51030", // class name
+ bases_ee51030, 4,
+ &(vtc_ee51030[0]), // expected_vtbl_contents
+ &(vtt_ee51030[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee51030),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51030),15, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51030),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61030 : dd1030 {
+ int e;
+ virtual void foo(); // _ZN7ee610303fooEv
+ virtual void bar(); // _ZN7ee610303barEv
+ ~ee61030(); // tgen
+ ee61030(); // tgen
+};
+//SIG(1 ee61030) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee61030 ::foo(){vfunc_called(this, "_ZN7ee610303fooEv");}
+void ee61030 ::bar(){vfunc_called(this, "_ZN7ee610303barEv");}
+ee61030 ::~ee61030(){ note_dtor("ee61030", this);} // tgen
+ee61030 ::ee61030(){ note_ctor("ee61030", this);} // tgen
+
+static void Test_ee61030()
+{
+ extern Class_Descriptor cd_ee61030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee61030, buf);
+ ee61030 *dp, &lv = *(dp=new (buf) ee61030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee61030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*), ABISELECT(32,24), "ee61030");
+ check_base_class_offset(lv, (bb30*)(cc030*), ABISELECT(16,12), "ee61030");
+ check_base_class_offset(lv, (cc030*)(dd1030*), ABISELECT(16,12), "ee61030");
+ check_base_class_offset(lv, (dd1030*), 0, "ee61030");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61030.e");
+ test_class_info(&lv, &cd_ee61030);
+ dp->~ee61030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61030(Test_ee61030, "ee61030", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee61030C1Ev();
+extern void _ZN7ee61030D1Ev();
+Name_Map name_map_ee61030[] = {
+ NSPAIR(_ZN7ee61030C1Ev),
+ NSPAIR(_ZN7ee61030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+extern Class_Descriptor cd_dd1030;
+extern VTBL_ENTRY _ZTI6dd1030[];
+extern VTBL_ENTRY _ZTV6dd1030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1030[];
+static Base_Class bases_ee61030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1030, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61030[];
+extern void _ZN7ee610303fooEv();
+extern void _ZN7ee610303barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee610303fooEv,_ZTv0_n16_N7ee610303fooEv)();
+extern void ABISELECT(_ZThn16_N7ee610303fooEv,_ZThn12_N7ee610303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61030[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61030[0]),
+ (VTBL_ENTRY)&_ZN7ee610303fooEv,
+ (VTBL_ENTRY)&_ZN7ee610303barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61030[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee610303fooEv,_ZTv0_n16_N7ee610303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee61030[];
+static VTBL_ENTRY _tg__ZTV6dd1030__7ee61030[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1030[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc030__6dd1030__7ee61030[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc030__7ee61030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc030__7ee61030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee61030[] = {
+ {&(_ZTV7ee61030[4]), 4,11},
+ {&(_tg__ZTV6dd1030__7ee61030[4]), 4,4},
+ {&(_tg__ZTV5cc030__6dd1030__7ee61030[4]), 4,5},
+ {&(_ZTV7ee61030[10]), 10,11},
+ {&(_tg__ZTV5cc030__7ee61030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc030__7ee61030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee61030[];
+extern VTBL_ENTRY _ZTV7ee61030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61030[];
+static VTBL_ENTRY alt_thunk_names5[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee610303fooEv,_ZTv0_n16_N7ee610303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee610303fooEv,_ZThn12_N7ee610303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61030 = { "ee61030", // class name
+ bases_ee61030, 4,
+ &(vtc_ee61030[0]), // expected_vtbl_contents
+ &(vtt_ee61030[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee61030),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61030),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61030),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names5,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71030 : virtual dd1030 {
+ int e;
+ virtual void foo(); // _ZN7ee710303fooEv
+ virtual void bar(); // _ZN7ee710303barEv
+ ~ee71030(); // tgen
+ ee71030(); // tgen
+};
+//SIG(1 ee71030) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee71030 ::foo(){vfunc_called(this, "_ZN7ee710303fooEv");}
+void ee71030 ::bar(){vfunc_called(this, "_ZN7ee710303barEv");}
+ee71030 ::~ee71030(){ note_dtor("ee71030", this);} // tgen
+ee71030 ::ee71030(){ note_ctor("ee71030", this);} // tgen
+
+static void Test_ee71030()
+{
+ extern Class_Descriptor cd_ee71030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee71030, buf);
+ ee71030 *dp, &lv = *(dp=new (buf) ee71030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee71030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*), ABISELECT(48,28), "ee71030");
+ check_base_class_offset(lv, (bb30*)(cc030*), ABISELECT(32,16), "ee71030");
+ check_base_class_offset(lv, (cc030*)(dd1030*), ABISELECT(32,16), "ee71030");
+ check_base_class_offset(lv, (dd1030*), ABISELECT(16,8), "ee71030");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71030.e");
+ test_class_info(&lv, &cd_ee71030);
+ dp->~ee71030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71030(Test_ee71030, "ee71030", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee71030C1Ev();
+extern void _ZN7ee71030D1Ev();
+Name_Map name_map_ee71030[] = {
+ NSPAIR(_ZN7ee71030C1Ev),
+ NSPAIR(_ZN7ee71030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+extern Class_Descriptor cd_dd1030;
+extern VTBL_ENTRY _ZTI6dd1030[];
+extern VTBL_ENTRY _ZTV6dd1030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1030[];
+static Base_Class bases_ee71030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(48,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1030, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee71030[];
+extern void _ZN7ee710303fooEv();
+extern void _ZN7ee710303barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee710303fooEv,_ZTv0_n16_N7ee710303fooEv)();
+extern void ABISELECT(_ZThn32_N7ee710303fooEv,_ZThn16_N7ee710303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71030[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71030[0]),
+ (VTBL_ENTRY)&_ZN7ee710303fooEv,
+ (VTBL_ENTRY)&_ZN7ee710303barEv,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71030[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71030[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee710303fooEv,_ZTv0_n16_N7ee710303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee71030[];
+static VTBL_ENTRY _tg__ZTV6dd1030__7ee71030[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1030[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc030__6dd1030__7ee71030[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc030__7ee71030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc030__7ee71030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee71030[] = {
+ {&(_ZTV7ee71030[5]), 5,16},
+ {&(_ZTV7ee71030[11]), 11,16},
+ {&(_ZTV7ee71030[15]), 15,16},
+ {&(_tg__ZTV6dd1030__7ee71030[4]), 4,4},
+ {&(_tg__ZTV5cc030__6dd1030__7ee71030[4]), 4,5},
+ {&(_tg__ZTV5cc030__7ee71030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc030__7ee71030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee71030[];
+extern VTBL_ENTRY _ZTV7ee71030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71030[];
+static VTBL_ENTRY alt_thunk_names6[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee710303fooEv,_ZTv0_n16_N7ee710303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee710303fooEv,_ZThn16_N7ee710303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71030 = { "ee71030", // class name
+ bases_ee71030, 4,
+ &(vtc_ee71030[0]), // expected_vtbl_contents
+ &(vtt_ee71030[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee71030),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71030),16, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71030),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names6,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2030 : cc030 {
+ int d;
+ virtual void foo(); // _ZN6dd20303fooEv
+ ~dd2030(); // tgen
+ dd2030(); // tgen
+};
+//SIG(-1 dd2030) C1{ BC2{ BC3{ VBC4{ Fi} v1 Fi} Fi} v1 Fi}
+
+
+void dd2030 ::foo(){vfunc_called(this, "_ZN6dd20303fooEv");}
+dd2030 ::~dd2030(){ note_dtor("dd2030", this);} // tgen
+dd2030 ::dd2030(){ note_ctor("dd2030", this);} // tgen
+
+static void Test_dd2030()
+{
+ extern Class_Descriptor cd_dd2030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd2030, buf);
+ dd2030 *dp, &lv = *(dp=new (buf) dd2030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd2030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*), ABISELECT(20,16), "dd2030");
+ check_base_class_offset(lv, (bb30*)(cc030*), 0, "dd2030");
+ check_base_class_offset(lv, (cc030*), 0, "dd2030");
+ check_field_offset(lv, d, ABISELECT(16,12), "dd2030.d");
+ test_class_info(&lv, &cd_dd2030);
+ dp->~dd2030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2030(Test_dd2030, "dd2030", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd2030C1Ev();
+extern void _ZN6dd2030D1Ev();
+Name_Map name_map_dd2030[] = {
+ NSPAIR(_ZN6dd2030C1Ev),
+ NSPAIR(_ZN6dd2030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+static Base_Class bases_dd2030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd2030[];
+extern void _ZN6dd20303fooEv();
+static VTBL_ENTRY vtc_dd2030[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2030[0]),
+ (VTBL_ENTRY)&_ZN6dd20303fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd2030[];
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc030__6dd2030[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc030__6dd2030[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_dd2030[] = {
+ {&(_ZTV6dd2030[3]), 3,4},
+ {&(_tg__ZTV5cc030__6dd2030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc030__6dd2030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd2030[];
+extern VTBL_ENTRY _ZTV6dd2030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2030[];
+Class_Descriptor cd_dd2030 = { "dd2030", // class name
+ bases_dd2030, 3,
+ &(vtc_dd2030[0]), // expected_vtbl_contents
+ &(vtt_dd2030[0]), // expected_vtt_contents
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd2030),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2030),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd2030),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 ee02030 : dd2030 {
+ int e;
+ ~ee02030(); // tgen
+ ee02030(); // tgen
+};
+//SIG(1 ee02030) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee02030 ::~ee02030(){ note_dtor("ee02030", this);} // tgen
+ee02030 ::ee02030(){ note_ctor("ee02030", this);} // tgen
+
+static void Test_ee02030()
+{
+ extern Class_Descriptor cd_ee02030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee02030, buf);
+ ee02030 *dp, &lv = *(dp=new (buf) ee02030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee02030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*)(dd2030*), ABISELECT(24,20), "ee02030");
+ check_base_class_offset(lv, (bb30*)(cc030*)(dd2030*), 0, "ee02030");
+ check_base_class_offset(lv, (cc030*)(dd2030*), 0, "ee02030");
+ check_base_class_offset(lv, (dd2030*), 0, "ee02030");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee02030.e");
+ test_class_info(&lv, &cd_ee02030);
+ dp->~ee02030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02030(Test_ee02030, "ee02030", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee02030C1Ev();
+extern void _ZN7ee02030D1Ev();
+Name_Map name_map_ee02030[] = {
+ NSPAIR(_ZN7ee02030C1Ev),
+ NSPAIR(_ZN7ee02030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+extern Class_Descriptor cd_dd2030;
+extern VTBL_ENTRY _ZTI6dd2030[];
+extern VTBL_ENTRY _ZTV6dd2030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2030[];
+static Base_Class bases_ee02030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2030, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02030[];
+extern void _ZN6dd20303fooEv();
+static VTBL_ENTRY vtc_ee02030[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02030[0]),
+ (VTBL_ENTRY)&_ZN6dd20303fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee02030[];
+extern void _ZN6dd20303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2030__7ee02030[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2030[0]),
+ (VTBL_ENTRY)&_ZN6dd20303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc0306dd2030__7ee02030[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc0306dd2030__7ee02030[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee02030[] = {
+ {&(_ZTV7ee02030[3]), 3,4},
+ {&(_tg__ZTV6dd2030__7ee02030[3]), 3,4},
+ {&(_tg__ZTV5cc0306dd2030__7ee02030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc0306dd2030__7ee02030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee02030[];
+extern VTBL_ENTRY _ZTV7ee02030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee02030[];
+Class_Descriptor cd_ee02030 = { "ee02030", // class name
+ bases_ee02030, 4,
+ &(vtc_ee02030[0]), // expected_vtbl_contents
+ &(vtt_ee02030[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee02030),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02030),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee02030),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee12030 : virtual dd2030 {
+ int e;
+ ~ee12030(); // tgen
+ ee12030(); // tgen
+};
+//SIG(1 ee12030) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee12030 ::~ee12030(){ note_dtor("ee12030", this);} // tgen
+ee12030 ::ee12030(){ note_ctor("ee12030", this);} // tgen
+
+static void Test_ee12030()
+{
+ extern Class_Descriptor cd_ee12030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee12030, buf);
+ ee12030 *dp, &lv = *(dp=new (buf) ee12030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee12030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*)(dd2030*), ABISELECT(36,24), "ee12030");
+ check_base_class_offset(lv, (bb30*)(cc030*)(dd2030*), ABISELECT(16,8), "ee12030");
+ check_base_class_offset(lv, (cc030*)(dd2030*), ABISELECT(16,8), "ee12030");
+ check_base_class_offset(lv, (dd2030*), ABISELECT(16,8), "ee12030");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12030.e");
+ test_class_info(&lv, &cd_ee12030);
+ dp->~ee12030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12030(Test_ee12030, "ee12030", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee12030C1Ev();
+extern void _ZN7ee12030D1Ev();
+Name_Map name_map_ee12030[] = {
+ NSPAIR(_ZN7ee12030C1Ev),
+ NSPAIR(_ZN7ee12030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+extern Class_Descriptor cd_dd2030;
+extern VTBL_ENTRY _ZTI6dd2030[];
+extern VTBL_ENTRY _ZTV6dd2030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2030[];
+static Base_Class bases_ee12030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2030, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee12030[];
+extern void _ZN6dd20303fooEv();
+static VTBL_ENTRY vtc_ee12030[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12030[0]),
+ 0,
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12030[0]),
+ (VTBL_ENTRY)&_ZN6dd20303fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee12030[];
+extern void _ZN6dd20303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2030__7ee12030[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2030[0]),
+ (VTBL_ENTRY)&_ZN6dd20303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc0306dd2030__7ee12030[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc0306dd2030__7ee12030[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee12030[] = {
+ {&(_ZTV7ee12030[4]), 4,9},
+ {&(_ZTV7ee12030[8]), 8,9},
+ {&(_tg__ZTV6dd2030__7ee12030[3]), 3,4},
+ {&(_tg__ZTV5cc0306dd2030__7ee12030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc0306dd2030__7ee12030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee12030[];
+extern VTBL_ENTRY _ZTV7ee12030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12030[];
+Class_Descriptor cd_ee12030 = { "ee12030", // class name
+ bases_ee12030, 4,
+ &(vtc_ee12030[0]), // expected_vtbl_contents
+ &(vtt_ee12030[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee12030),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12030),9, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12030),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee22030 : dd2030 {
+ int e;
+ virtual void foo(); // _ZN7ee220303fooEv
+ ~ee22030(); // tgen
+ ee22030(); // tgen
+};
+//SIG(1 ee22030) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee22030 ::foo(){vfunc_called(this, "_ZN7ee220303fooEv");}
+ee22030 ::~ee22030(){ note_dtor("ee22030", this);} // tgen
+ee22030 ::ee22030(){ note_ctor("ee22030", this);} // tgen
+
+static void Test_ee22030()
+{
+ extern Class_Descriptor cd_ee22030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee22030, buf);
+ ee22030 *dp, &lv = *(dp=new (buf) ee22030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee22030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*)(dd2030*), ABISELECT(24,20), "ee22030");
+ check_base_class_offset(lv, (bb30*)(cc030*)(dd2030*), 0, "ee22030");
+ check_base_class_offset(lv, (cc030*)(dd2030*), 0, "ee22030");
+ check_base_class_offset(lv, (dd2030*), 0, "ee22030");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee22030.e");
+ test_class_info(&lv, &cd_ee22030);
+ dp->~ee22030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22030(Test_ee22030, "ee22030", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee22030C1Ev();
+extern void _ZN7ee22030D1Ev();
+Name_Map name_map_ee22030[] = {
+ NSPAIR(_ZN7ee22030C1Ev),
+ NSPAIR(_ZN7ee22030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+extern Class_Descriptor cd_dd2030;
+extern VTBL_ENTRY _ZTI6dd2030[];
+extern VTBL_ENTRY _ZTV6dd2030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2030[];
+static Base_Class bases_ee22030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2030, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22030[];
+extern void _ZN7ee220303fooEv();
+static VTBL_ENTRY vtc_ee22030[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22030[0]),
+ (VTBL_ENTRY)&_ZN7ee220303fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee22030[];
+extern void _ZN6dd20303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2030__7ee22030[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2030[0]),
+ (VTBL_ENTRY)&_ZN6dd20303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc0306dd2030__7ee22030[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc0306dd2030__7ee22030[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee22030[] = {
+ {&(_ZTV7ee22030[3]), 3,4},
+ {&(_tg__ZTV6dd2030__7ee22030[3]), 3,4},
+ {&(_tg__ZTV5cc0306dd2030__7ee22030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc0306dd2030__7ee22030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee22030[];
+extern VTBL_ENTRY _ZTV7ee22030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee22030[];
+Class_Descriptor cd_ee22030 = { "ee22030", // class name
+ bases_ee22030, 4,
+ &(vtc_ee22030[0]), // expected_vtbl_contents
+ &(vtt_ee22030[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee22030),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22030),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee22030),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee32030 : virtual dd2030 {
+ int e;
+ virtual void foo(); // _ZN7ee320303fooEv
+ ~ee32030(); // tgen
+ ee32030(); // tgen
+};
+//SIG(1 ee32030) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee32030 ::foo(){vfunc_called(this, "_ZN7ee320303fooEv");}
+ee32030 ::~ee32030(){ note_dtor("ee32030", this);} // tgen
+ee32030 ::ee32030(){ note_ctor("ee32030", this);} // tgen
+
+static void Test_ee32030()
+{
+ extern Class_Descriptor cd_ee32030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee32030, buf);
+ ee32030 *dp, &lv = *(dp=new (buf) ee32030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee32030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*)(dd2030*), ABISELECT(36,24), "ee32030");
+ check_base_class_offset(lv, (bb30*)(cc030*)(dd2030*), ABISELECT(16,8), "ee32030");
+ check_base_class_offset(lv, (cc030*)(dd2030*), ABISELECT(16,8), "ee32030");
+ check_base_class_offset(lv, (dd2030*), ABISELECT(16,8), "ee32030");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32030.e");
+ test_class_info(&lv, &cd_ee32030);
+ dp->~ee32030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32030(Test_ee32030, "ee32030", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee32030C1Ev();
+extern void _ZN7ee32030D1Ev();
+Name_Map name_map_ee32030[] = {
+ NSPAIR(_ZN7ee32030C1Ev),
+ NSPAIR(_ZN7ee32030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+extern Class_Descriptor cd_dd2030;
+extern VTBL_ENTRY _ZTI6dd2030[];
+extern VTBL_ENTRY _ZTV6dd2030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2030[];
+static Base_Class bases_ee32030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2030, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee32030[];
+extern void _ZN7ee320303fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee320303fooEv,_ZTv0_n16_N7ee320303fooEv)();
+extern void ABISELECT(_ZThn16_N7ee320303fooEv,_ZThn8_N7ee320303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32030[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32030[0]),
+ (VTBL_ENTRY)&_ZN7ee320303fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32030[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee320303fooEv,_ZTv0_n16_N7ee320303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee32030[];
+extern void _ZN6dd20303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2030__7ee32030[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2030[0]),
+ (VTBL_ENTRY)&_ZN6dd20303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc0306dd2030__7ee32030[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc0306dd2030__7ee32030[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee32030[] = {
+ {&(_ZTV7ee32030[4]), 4,10},
+ {&(_ZTV7ee32030[9]), 9,10},
+ {&(_tg__ZTV6dd2030__7ee32030[3]), 3,4},
+ {&(_tg__ZTV5cc0306dd2030__7ee32030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc0306dd2030__7ee32030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee32030[];
+extern VTBL_ENTRY _ZTV7ee32030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32030[];
+static VTBL_ENTRY alt_thunk_names7[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee320303fooEv,_ZTv0_n16_N7ee320303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee320303fooEv,_ZThn8_N7ee320303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32030 = { "ee32030", // class name
+ bases_ee32030, 4,
+ &(vtc_ee32030[0]), // expected_vtbl_contents
+ &(vtt_ee32030[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee32030),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32030),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32030),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names7,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42030 : dd2030 {
+ int e;
+ virtual void bar(); // _ZN7ee420303barEv
+ ~ee42030(); // tgen
+ ee42030(); // tgen
+};
+//SIG(1 ee42030) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee42030 ::bar(){vfunc_called(this, "_ZN7ee420303barEv");}
+ee42030 ::~ee42030(){ note_dtor("ee42030", this);} // tgen
+ee42030 ::ee42030(){ note_ctor("ee42030", this);} // tgen
+
+static void Test_ee42030()
+{
+ extern Class_Descriptor cd_ee42030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee42030, buf);
+ ee42030 *dp, &lv = *(dp=new (buf) ee42030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee42030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*)(dd2030*), ABISELECT(24,20), "ee42030");
+ check_base_class_offset(lv, (bb30*)(cc030*)(dd2030*), 0, "ee42030");
+ check_base_class_offset(lv, (cc030*)(dd2030*), 0, "ee42030");
+ check_base_class_offset(lv, (dd2030*), 0, "ee42030");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee42030.e");
+ test_class_info(&lv, &cd_ee42030);
+ dp->~ee42030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42030(Test_ee42030, "ee42030", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee42030C1Ev();
+extern void _ZN7ee42030D1Ev();
+Name_Map name_map_ee42030[] = {
+ NSPAIR(_ZN7ee42030C1Ev),
+ NSPAIR(_ZN7ee42030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+extern Class_Descriptor cd_dd2030;
+extern VTBL_ENTRY _ZTI6dd2030[];
+extern VTBL_ENTRY _ZTV6dd2030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2030[];
+static Base_Class bases_ee42030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2030, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42030[];
+extern void _ZN6dd20303fooEv();
+extern void _ZN7ee420303barEv();
+static VTBL_ENTRY vtc_ee42030[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42030[0]),
+ (VTBL_ENTRY)&_ZN6dd20303fooEv,
+ (VTBL_ENTRY)&_ZN7ee420303barEv,
+};
+extern VTBL_ENTRY _ZTV7ee42030[];
+extern void _ZN6dd20303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2030__7ee42030[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2030[0]),
+ (VTBL_ENTRY)&_ZN6dd20303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc0306dd2030__7ee42030[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc0306dd2030__7ee42030[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee42030[] = {
+ {&(_ZTV7ee42030[3]), 3,5},
+ {&(_tg__ZTV6dd2030__7ee42030[3]), 3,4},
+ {&(_tg__ZTV5cc0306dd2030__7ee42030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc0306dd2030__7ee42030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee42030[];
+extern VTBL_ENTRY _ZTV7ee42030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee42030[];
+Class_Descriptor cd_ee42030 = { "ee42030", // class name
+ bases_ee42030, 4,
+ &(vtc_ee42030[0]), // expected_vtbl_contents
+ &(vtt_ee42030[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee42030),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42030),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee42030),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee52030 : virtual dd2030 {
+ int e;
+ virtual void bar(); // _ZN7ee520303barEv
+ ~ee52030(); // tgen
+ ee52030(); // tgen
+};
+//SIG(1 ee52030) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee52030 ::bar(){vfunc_called(this, "_ZN7ee520303barEv");}
+ee52030 ::~ee52030(){ note_dtor("ee52030", this);} // tgen
+ee52030 ::ee52030(){ note_ctor("ee52030", this);} // tgen
+
+static void Test_ee52030()
+{
+ extern Class_Descriptor cd_ee52030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee52030, buf);
+ ee52030 *dp, &lv = *(dp=new (buf) ee52030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee52030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*)(dd2030*), ABISELECT(36,24), "ee52030");
+ check_base_class_offset(lv, (bb30*)(cc030*)(dd2030*), ABISELECT(16,8), "ee52030");
+ check_base_class_offset(lv, (cc030*)(dd2030*), ABISELECT(16,8), "ee52030");
+ check_base_class_offset(lv, (dd2030*), ABISELECT(16,8), "ee52030");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52030.e");
+ test_class_info(&lv, &cd_ee52030);
+ dp->~ee52030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52030(Test_ee52030, "ee52030", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee52030C1Ev();
+extern void _ZN7ee52030D1Ev();
+Name_Map name_map_ee52030[] = {
+ NSPAIR(_ZN7ee52030C1Ev),
+ NSPAIR(_ZN7ee52030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+extern Class_Descriptor cd_dd2030;
+extern VTBL_ENTRY _ZTI6dd2030[];
+extern VTBL_ENTRY _ZTV6dd2030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2030[];
+static Base_Class bases_ee52030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2030, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee52030[];
+extern void _ZN7ee520303barEv();
+extern void _ZN6dd20303fooEv();
+static VTBL_ENTRY vtc_ee52030[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52030[0]),
+ (VTBL_ENTRY)&_ZN7ee520303barEv,
+ 0,
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52030[0]),
+ (VTBL_ENTRY)&_ZN6dd20303fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee52030[];
+extern void _ZN6dd20303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2030__7ee52030[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2030[0]),
+ (VTBL_ENTRY)&_ZN6dd20303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc0306dd2030__7ee52030[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc0306dd2030__7ee52030[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee52030[] = {
+ {&(_ZTV7ee52030[4]), 4,10},
+ {&(_ZTV7ee52030[9]), 9,10},
+ {&(_tg__ZTV6dd2030__7ee52030[3]), 3,4},
+ {&(_tg__ZTV5cc0306dd2030__7ee52030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc0306dd2030__7ee52030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee52030[];
+extern VTBL_ENTRY _ZTV7ee52030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52030[];
+Class_Descriptor cd_ee52030 = { "ee52030", // class name
+ bases_ee52030, 4,
+ &(vtc_ee52030[0]), // expected_vtbl_contents
+ &(vtt_ee52030[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee52030),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52030),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52030),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee62030 : dd2030 {
+ int e;
+ virtual void foo(); // _ZN7ee620303fooEv
+ virtual void bar(); // _ZN7ee620303barEv
+ ~ee62030(); // tgen
+ ee62030(); // tgen
+};
+//SIG(1 ee62030) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62030 ::foo(){vfunc_called(this, "_ZN7ee620303fooEv");}
+void ee62030 ::bar(){vfunc_called(this, "_ZN7ee620303barEv");}
+ee62030 ::~ee62030(){ note_dtor("ee62030", this);} // tgen
+ee62030 ::ee62030(){ note_ctor("ee62030", this);} // tgen
+
+static void Test_ee62030()
+{
+ extern Class_Descriptor cd_ee62030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee62030, buf);
+ ee62030 *dp, &lv = *(dp=new (buf) ee62030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee62030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*)(dd2030*), ABISELECT(24,20), "ee62030");
+ check_base_class_offset(lv, (bb30*)(cc030*)(dd2030*), 0, "ee62030");
+ check_base_class_offset(lv, (cc030*)(dd2030*), 0, "ee62030");
+ check_base_class_offset(lv, (dd2030*), 0, "ee62030");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee62030.e");
+ test_class_info(&lv, &cd_ee62030);
+ dp->~ee62030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62030(Test_ee62030, "ee62030", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee62030C1Ev();
+extern void _ZN7ee62030D1Ev();
+Name_Map name_map_ee62030[] = {
+ NSPAIR(_ZN7ee62030C1Ev),
+ NSPAIR(_ZN7ee62030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+extern Class_Descriptor cd_dd2030;
+extern VTBL_ENTRY _ZTI6dd2030[];
+extern VTBL_ENTRY _ZTV6dd2030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2030[];
+static Base_Class bases_ee62030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2030, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62030[];
+extern void _ZN7ee620303fooEv();
+extern void _ZN7ee620303barEv();
+static VTBL_ENTRY vtc_ee62030[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62030[0]),
+ (VTBL_ENTRY)&_ZN7ee620303fooEv,
+ (VTBL_ENTRY)&_ZN7ee620303barEv,
+};
+extern VTBL_ENTRY _ZTV7ee62030[];
+extern void _ZN6dd20303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2030__7ee62030[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2030[0]),
+ (VTBL_ENTRY)&_ZN6dd20303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc0306dd2030__7ee62030[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc0306dd2030__7ee62030[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee62030[] = {
+ {&(_ZTV7ee62030[3]), 3,5},
+ {&(_tg__ZTV6dd2030__7ee62030[3]), 3,4},
+ {&(_tg__ZTV5cc0306dd2030__7ee62030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc0306dd2030__7ee62030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee62030[];
+extern VTBL_ENTRY _ZTV7ee62030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee62030[];
+Class_Descriptor cd_ee62030 = { "ee62030", // class name
+ bases_ee62030, 4,
+ &(vtc_ee62030[0]), // expected_vtbl_contents
+ &(vtt_ee62030[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee62030),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62030),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee62030),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee72030 : virtual dd2030 {
+ int e;
+ virtual void foo(); // _ZN7ee720303fooEv
+ virtual void bar(); // _ZN7ee720303barEv
+ ~ee72030(); // tgen
+ ee72030(); // tgen
+};
+//SIG(1 ee72030) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72030 ::foo(){vfunc_called(this, "_ZN7ee720303fooEv");}
+void ee72030 ::bar(){vfunc_called(this, "_ZN7ee720303barEv");}
+ee72030 ::~ee72030(){ note_dtor("ee72030", this);} // tgen
+ee72030 ::ee72030(){ note_ctor("ee72030", this);} // tgen
+
+static void Test_ee72030()
+{
+ extern Class_Descriptor cd_ee72030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee72030, buf);
+ ee72030 *dp, &lv = *(dp=new (buf) ee72030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee72030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*)(dd2030*), ABISELECT(36,24), "ee72030");
+ check_base_class_offset(lv, (bb30*)(cc030*)(dd2030*), ABISELECT(16,8), "ee72030");
+ check_base_class_offset(lv, (cc030*)(dd2030*), ABISELECT(16,8), "ee72030");
+ check_base_class_offset(lv, (dd2030*), ABISELECT(16,8), "ee72030");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72030.e");
+ test_class_info(&lv, &cd_ee72030);
+ dp->~ee72030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72030(Test_ee72030, "ee72030", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee72030C1Ev();
+extern void _ZN7ee72030D1Ev();
+Name_Map name_map_ee72030[] = {
+ NSPAIR(_ZN7ee72030C1Ev),
+ NSPAIR(_ZN7ee72030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+extern Class_Descriptor cd_dd2030;
+extern VTBL_ENTRY _ZTI6dd2030[];
+extern VTBL_ENTRY _ZTV6dd2030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2030[];
+static Base_Class bases_ee72030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2030, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee72030[];
+extern void _ZN7ee720303fooEv();
+extern void _ZN7ee720303barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee720303fooEv,_ZTv0_n16_N7ee720303fooEv)();
+extern void ABISELECT(_ZThn16_N7ee720303fooEv,_ZThn8_N7ee720303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72030[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72030[0]),
+ (VTBL_ENTRY)&_ZN7ee720303fooEv,
+ (VTBL_ENTRY)&_ZN7ee720303barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72030[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee720303fooEv,_ZTv0_n16_N7ee720303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee72030[];
+extern void _ZN6dd20303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2030__7ee72030[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2030[0]),
+ (VTBL_ENTRY)&_ZN6dd20303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc0306dd2030__7ee72030[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc0306dd2030__7ee72030[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee72030[] = {
+ {&(_ZTV7ee72030[4]), 4,11},
+ {&(_ZTV7ee72030[10]), 10,11},
+ {&(_tg__ZTV6dd2030__7ee72030[3]), 3,4},
+ {&(_tg__ZTV5cc0306dd2030__7ee72030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc0306dd2030__7ee72030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee72030[];
+extern VTBL_ENTRY _ZTV7ee72030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72030[];
+static VTBL_ENTRY alt_thunk_names8[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee720303fooEv,_ZTv0_n16_N7ee720303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee720303fooEv,_ZThn8_N7ee720303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72030 = { "ee72030", // class name
+ bases_ee72030, 4,
+ &(vtc_ee72030[0]), // expected_vtbl_contents
+ &(vtt_ee72030[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee72030),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72030),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72030),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names8,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3030 : virtual cc030 {
+ int d;
+ virtual void foo(); // _ZN6dd30303fooEv
+ ~dd3030(); // tgen
+ dd3030(); // tgen
+};
+//SIG(-1 dd3030) C1{ VBC2{ BC3{ VBC4{ Fi} v1 Fi} Fi} v1 Fi}
+
+
+void dd3030 ::foo(){vfunc_called(this, "_ZN6dd30303fooEv");}
+dd3030 ::~dd3030(){ note_dtor("dd3030", this);} // tgen
+dd3030 ::dd3030(){ note_ctor("dd3030", this);} // tgen
+
+static void Test_dd3030()
+{
+ extern Class_Descriptor cd_dd3030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd3030, buf);
+ dd3030 *dp, &lv = *(dp=new (buf) dd3030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd3030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*), ABISELECT(32,20), "dd3030");
+ check_base_class_offset(lv, (bb30*)(cc030*), ABISELECT(16,8), "dd3030");
+ check_base_class_offset(lv, (cc030*), ABISELECT(16,8), "dd3030");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3030.d");
+ test_class_info(&lv, &cd_dd3030);
+ dp->~dd3030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3030(Test_dd3030, "dd3030", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd3030C1Ev();
+extern void _ZN6dd3030D1Ev();
+Name_Map name_map_dd3030[] = {
+ NSPAIR(_ZN6dd3030C1Ev),
+ NSPAIR(_ZN6dd3030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+static Base_Class bases_dd3030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, 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 _ZTI6dd3030[];
+extern void _ZN6dd30303fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd30303fooEv,_ZTv0_n16_N6dd30303fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30303fooEv,_ZThn8_N6dd30303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd3030[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3030[0]),
+ (VTBL_ENTRY)&_ZN6dd30303fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3030[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd30303fooEv,_ZTv0_n16_N6dd30303fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd3030[];
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc030__6dd3030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc030__6dd3030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_dd3030[] = {
+ {&(_ZTV6dd3030[4]), 4,10},
+ {&(_ZTV6dd3030[9]), 9,10},
+ {&(_tg__ZTV5cc030__6dd3030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc030__6dd3030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd3030[];
+extern VTBL_ENTRY _ZTV6dd3030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3030[];
+static VTBL_ENTRY alt_thunk_names9[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd30303fooEv,_ZTv0_n16_N6dd30303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30303fooEv,_ZThn8_N6dd30303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3030 = { "dd3030", // class name
+ bases_dd3030, 3,
+ &(vtc_dd3030[0]), // expected_vtbl_contents
+ &(vtt_dd3030[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd3030),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3030),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3030),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names9,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03030 : dd3030 {
+ int e;
+ ~ee03030(); // tgen
+ ee03030(); // tgen
+};
+//SIG(1 ee03030) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee03030 ::~ee03030(){ note_dtor("ee03030", this);} // tgen
+ee03030 ::ee03030(){ note_ctor("ee03030", this);} // tgen
+
+static void Test_ee03030()
+{
+ extern Class_Descriptor cd_ee03030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee03030, buf);
+ ee03030 *dp, &lv = *(dp=new (buf) ee03030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee03030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*), ABISELECT(32,24), "ee03030");
+ check_base_class_offset(lv, (bb30*)(cc030*), ABISELECT(16,12), "ee03030");
+ check_base_class_offset(lv, (cc030*)(dd3030*), ABISELECT(16,12), "ee03030");
+ check_base_class_offset(lv, (dd3030*), 0, "ee03030");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03030.e");
+ test_class_info(&lv, &cd_ee03030);
+ dp->~ee03030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03030(Test_ee03030, "ee03030", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee03030C1Ev();
+extern void _ZN7ee03030D1Ev();
+Name_Map name_map_ee03030[] = {
+ NSPAIR(_ZN7ee03030C1Ev),
+ NSPAIR(_ZN7ee03030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+extern Class_Descriptor cd_dd3030;
+extern VTBL_ENTRY _ZTI6dd3030[];
+extern VTBL_ENTRY _ZTV6dd3030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3030[];
+static Base_Class bases_ee03030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3030, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03030[];
+extern void _ZN6dd30303fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd30303fooEv,_ZTv0_n16_N6dd30303fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30303fooEv,_ZThn12_N6dd30303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee03030[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03030[0]),
+ (VTBL_ENTRY)&_ZN6dd30303fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03030[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd30303fooEv,_ZTv0_n16_N6dd30303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee03030[];
+extern void _ZN6dd30303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3030__7ee03030[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3030[0]),
+ (VTBL_ENTRY)&_ZN6dd30303fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd30303fooEv,_ZTv0_n16_N6dd30303fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30303fooEv,_ZThn12_N6dd30303fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc030__6dd3030__7ee03030[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3030[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd30303fooEv,_ZTv0_n16_N6dd30303fooEv),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc030__7ee03030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc030__7ee03030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee03030[] = {
+ {&(_ZTV7ee03030[4]), 4,10},
+ {&(_tg__ZTV6dd3030__7ee03030[4]), 4,5},
+ {&(_tg__ZTV5cc030__6dd3030__7ee03030[4]), 4,5},
+ {&(_ZTV7ee03030[9]), 9,10},
+ {&(_tg__ZTV5cc030__7ee03030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc030__7ee03030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee03030[];
+extern VTBL_ENTRY _ZTV7ee03030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03030[];
+static VTBL_ENTRY alt_thunk_names10[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd30303fooEv,_ZTv0_n16_N6dd30303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30303fooEv,_ZThn12_N6dd30303fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30303fooEv,_ZThn12_N6dd30303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03030 = { "ee03030", // class name
+ bases_ee03030, 4,
+ &(vtc_ee03030[0]), // expected_vtbl_contents
+ &(vtt_ee03030[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee03030),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03030),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03030),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names10,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13030 : virtual dd3030 {
+ int e;
+ ~ee13030(); // tgen
+ ee13030(); // tgen
+};
+//SIG(1 ee13030) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee13030 ::~ee13030(){ note_dtor("ee13030", this);} // tgen
+ee13030 ::ee13030(){ note_ctor("ee13030", this);} // tgen
+
+static void Test_ee13030()
+{
+ extern Class_Descriptor cd_ee13030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee13030, buf);
+ ee13030 *dp, &lv = *(dp=new (buf) ee13030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee13030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*), ABISELECT(48,28), "ee13030");
+ check_base_class_offset(lv, (bb30*)(cc030*), ABISELECT(32,16), "ee13030");
+ check_base_class_offset(lv, (cc030*)(dd3030*), ABISELECT(32,16), "ee13030");
+ check_base_class_offset(lv, (dd3030*), ABISELECT(16,8), "ee13030");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13030.e");
+ test_class_info(&lv, &cd_ee13030);
+ dp->~ee13030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13030(Test_ee13030, "ee13030", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee13030C1Ev();
+extern void _ZN7ee13030D1Ev();
+Name_Map name_map_ee13030[] = {
+ NSPAIR(_ZN7ee13030C1Ev),
+ NSPAIR(_ZN7ee13030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+extern Class_Descriptor cd_dd3030;
+extern VTBL_ENTRY _ZTI6dd3030[];
+extern VTBL_ENTRY _ZTV6dd3030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3030[];
+static Base_Class bases_ee13030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(48,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3030, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee13030[];
+extern void _ZN6dd30303fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd30303fooEv,_ZTv0_n16_N6dd30303fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30303fooEv,_ZThn8_N6dd30303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee13030[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13030[0]),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13030[0]),
+ (VTBL_ENTRY)&_ZN6dd30303fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13030[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd30303fooEv,_ZTv0_n16_N6dd30303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee13030[];
+extern void _ZN6dd30303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3030__7ee13030[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3030[0]),
+ (VTBL_ENTRY)&_ZN6dd30303fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd30303fooEv,_ZTv0_n16_N6dd30303fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30303fooEv,_ZThn8_N6dd30303fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc030__6dd3030__7ee13030[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3030[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd30303fooEv,_ZTv0_n16_N6dd30303fooEv),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc030__7ee13030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc030__7ee13030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee13030[] = {
+ {&(_ZTV7ee13030[5]), 5,16},
+ {&(_ZTV7ee13030[10]), 10,16},
+ {&(_ZTV7ee13030[15]), 15,16},
+ {&(_tg__ZTV6dd3030__7ee13030[4]), 4,5},
+ {&(_tg__ZTV5cc030__6dd3030__7ee13030[4]), 4,5},
+ {&(_tg__ZTV5cc030__7ee13030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc030__7ee13030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee13030[];
+extern VTBL_ENTRY _ZTV7ee13030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13030[];
+static VTBL_ENTRY alt_thunk_names11[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd30303fooEv,_ZTv0_n16_N6dd30303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30303fooEv,_ZThn8_N6dd30303fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30303fooEv,_ZThn8_N6dd30303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13030 = { "ee13030", // class name
+ bases_ee13030, 4,
+ &(vtc_ee13030[0]), // expected_vtbl_contents
+ &(vtt_ee13030[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee13030),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13030),16, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13030),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names11,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23030 : dd3030 {
+ int e;
+ virtual void foo(); // _ZN7ee230303fooEv
+ ~ee23030(); // tgen
+ ee23030(); // tgen
+};
+//SIG(1 ee23030) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee23030 ::foo(){vfunc_called(this, "_ZN7ee230303fooEv");}
+ee23030 ::~ee23030(){ note_dtor("ee23030", this);} // tgen
+ee23030 ::ee23030(){ note_ctor("ee23030", this);} // tgen
+
+static void Test_ee23030()
+{
+ extern Class_Descriptor cd_ee23030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee23030, buf);
+ ee23030 *dp, &lv = *(dp=new (buf) ee23030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee23030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*), ABISELECT(32,24), "ee23030");
+ check_base_class_offset(lv, (bb30*)(cc030*), ABISELECT(16,12), "ee23030");
+ check_base_class_offset(lv, (cc030*)(dd3030*), ABISELECT(16,12), "ee23030");
+ check_base_class_offset(lv, (dd3030*), 0, "ee23030");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23030.e");
+ test_class_info(&lv, &cd_ee23030);
+ dp->~ee23030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23030(Test_ee23030, "ee23030", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee23030C1Ev();
+extern void _ZN7ee23030D1Ev();
+Name_Map name_map_ee23030[] = {
+ NSPAIR(_ZN7ee23030C1Ev),
+ NSPAIR(_ZN7ee23030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+extern Class_Descriptor cd_dd3030;
+extern VTBL_ENTRY _ZTI6dd3030[];
+extern VTBL_ENTRY _ZTV6dd3030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3030[];
+static Base_Class bases_ee23030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3030, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23030[];
+extern void _ZN7ee230303fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee230303fooEv,_ZTv0_n16_N7ee230303fooEv)();
+extern void ABISELECT(_ZThn16_N7ee230303fooEv,_ZThn12_N7ee230303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee23030[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23030[0]),
+ (VTBL_ENTRY)&_ZN7ee230303fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23030[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee230303fooEv,_ZTv0_n16_N7ee230303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee23030[];
+extern void _ZN6dd30303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3030__7ee23030[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3030[0]),
+ (VTBL_ENTRY)&_ZN6dd30303fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd30303fooEv,_ZTv0_n16_N6dd30303fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30303fooEv,_ZThn12_N6dd30303fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc030__6dd3030__7ee23030[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3030[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd30303fooEv,_ZTv0_n16_N6dd30303fooEv),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc030__7ee23030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc030__7ee23030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee23030[] = {
+ {&(_ZTV7ee23030[4]), 4,10},
+ {&(_tg__ZTV6dd3030__7ee23030[4]), 4,5},
+ {&(_tg__ZTV5cc030__6dd3030__7ee23030[4]), 4,5},
+ {&(_ZTV7ee23030[9]), 9,10},
+ {&(_tg__ZTV5cc030__7ee23030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc030__7ee23030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee23030[];
+extern VTBL_ENTRY _ZTV7ee23030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23030[];
+static VTBL_ENTRY alt_thunk_names12[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd30303fooEv,_ZTv0_n16_N6dd30303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30303fooEv,_ZThn12_N6dd30303fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee230303fooEv,_ZTv0_n16_N7ee230303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee230303fooEv,_ZThn12_N7ee230303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23030 = { "ee23030", // class name
+ bases_ee23030, 4,
+ &(vtc_ee23030[0]), // expected_vtbl_contents
+ &(vtt_ee23030[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee23030),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23030),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23030),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names12,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33030 : virtual dd3030 {
+ int e;
+ virtual void foo(); // _ZN7ee330303fooEv
+ ~ee33030(); // tgen
+ ee33030(); // tgen
+};
+//SIG(1 ee33030) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee33030 ::foo(){vfunc_called(this, "_ZN7ee330303fooEv");}
+ee33030 ::~ee33030(){ note_dtor("ee33030", this);} // tgen
+ee33030 ::ee33030(){ note_ctor("ee33030", this);} // tgen
+
+static void Test_ee33030()
+{
+ extern Class_Descriptor cd_ee33030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee33030, buf);
+ ee33030 *dp, &lv = *(dp=new (buf) ee33030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee33030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*), ABISELECT(48,28), "ee33030");
+ check_base_class_offset(lv, (bb30*)(cc030*), ABISELECT(32,16), "ee33030");
+ check_base_class_offset(lv, (cc030*)(dd3030*), ABISELECT(32,16), "ee33030");
+ check_base_class_offset(lv, (dd3030*), ABISELECT(16,8), "ee33030");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33030.e");
+ test_class_info(&lv, &cd_ee33030);
+ dp->~ee33030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33030(Test_ee33030, "ee33030", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee33030C1Ev();
+extern void _ZN7ee33030D1Ev();
+Name_Map name_map_ee33030[] = {
+ NSPAIR(_ZN7ee33030C1Ev),
+ NSPAIR(_ZN7ee33030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+extern Class_Descriptor cd_dd3030;
+extern VTBL_ENTRY _ZTI6dd3030[];
+extern VTBL_ENTRY _ZTV6dd3030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3030[];
+static Base_Class bases_ee33030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(48,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3030, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee33030[];
+extern void _ZN7ee330303fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee330303fooEv,_ZTv0_n20_N7ee330303fooEv)();
+extern void ABISELECT(_ZThn16_N7ee330303fooEv,_ZThn8_N7ee330303fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee330303fooEv,_ZTv0_n16_N7ee330303fooEv)();
+extern void ABISELECT(_ZThn32_N7ee330303fooEv,_ZThn16_N7ee330303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee33030[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33030[0]),
+ (VTBL_ENTRY)&_ZN7ee330303fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33030[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee330303fooEv,_ZTv0_n20_N7ee330303fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33030[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee330303fooEv,_ZTv0_n16_N7ee330303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee33030[];
+extern void _ZN6dd30303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3030__7ee33030[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3030[0]),
+ (VTBL_ENTRY)&_ZN6dd30303fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd30303fooEv,_ZTv0_n16_N6dd30303fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30303fooEv,_ZThn8_N6dd30303fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc030__6dd3030__7ee33030[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3030[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd30303fooEv,_ZTv0_n16_N6dd30303fooEv),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc030__7ee33030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc030__7ee33030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee33030[] = {
+ {&(_ZTV7ee33030[5]), 5,17},
+ {&(_ZTV7ee33030[11]), 11,17},
+ {&(_ZTV7ee33030[16]), 16,17},
+ {&(_tg__ZTV6dd3030__7ee33030[4]), 4,5},
+ {&(_tg__ZTV5cc030__6dd3030__7ee33030[4]), 4,5},
+ {&(_tg__ZTV5cc030__7ee33030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc030__7ee33030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee33030[];
+extern VTBL_ENTRY _ZTV7ee33030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33030[];
+static VTBL_ENTRY alt_thunk_names13[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd30303fooEv,_ZTv0_n16_N6dd30303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30303fooEv,_ZThn8_N6dd30303fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee330303fooEv,_ZTv0_n16_N7ee330303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee330303fooEv,_ZThn16_N7ee330303fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee330303fooEv,_ZTv0_n20_N7ee330303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee330303fooEv,_ZThn8_N7ee330303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33030 = { "ee33030", // class name
+ bases_ee33030, 4,
+ &(vtc_ee33030[0]), // expected_vtbl_contents
+ &(vtt_ee33030[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee33030),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33030),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33030),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names13,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43030 : dd3030 {
+ int e;
+ virtual void bar(); // _ZN7ee430303barEv
+ ~ee43030(); // tgen
+ ee43030(); // tgen
+};
+//SIG(1 ee43030) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee43030 ::bar(){vfunc_called(this, "_ZN7ee430303barEv");}
+ee43030 ::~ee43030(){ note_dtor("ee43030", this);} // tgen
+ee43030 ::ee43030(){ note_ctor("ee43030", this);} // tgen
+
+static void Test_ee43030()
+{
+ extern Class_Descriptor cd_ee43030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee43030, buf);
+ ee43030 *dp, &lv = *(dp=new (buf) ee43030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee43030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*), ABISELECT(32,24), "ee43030");
+ check_base_class_offset(lv, (bb30*)(cc030*), ABISELECT(16,12), "ee43030");
+ check_base_class_offset(lv, (cc030*)(dd3030*), ABISELECT(16,12), "ee43030");
+ check_base_class_offset(lv, (dd3030*), 0, "ee43030");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43030.e");
+ test_class_info(&lv, &cd_ee43030);
+ dp->~ee43030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43030(Test_ee43030, "ee43030", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee43030C1Ev();
+extern void _ZN7ee43030D1Ev();
+Name_Map name_map_ee43030[] = {
+ NSPAIR(_ZN7ee43030C1Ev),
+ NSPAIR(_ZN7ee43030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+extern Class_Descriptor cd_dd3030;
+extern VTBL_ENTRY _ZTI6dd3030[];
+extern VTBL_ENTRY _ZTV6dd3030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3030[];
+static Base_Class bases_ee43030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3030, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43030[];
+extern void _ZN6dd30303fooEv();
+extern void _ZN7ee430303barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd30303fooEv,_ZTv0_n16_N6dd30303fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30303fooEv,_ZThn12_N6dd30303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43030[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43030[0]),
+ (VTBL_ENTRY)&_ZN6dd30303fooEv,
+ (VTBL_ENTRY)&_ZN7ee430303barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43030[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd30303fooEv,_ZTv0_n16_N6dd30303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee43030[];
+extern void _ZN6dd30303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3030__7ee43030[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3030[0]),
+ (VTBL_ENTRY)&_ZN6dd30303fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd30303fooEv,_ZTv0_n16_N6dd30303fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30303fooEv,_ZThn12_N6dd30303fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc030__6dd3030__7ee43030[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3030[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd30303fooEv,_ZTv0_n16_N6dd30303fooEv),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc030__7ee43030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc030__7ee43030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee43030[] = {
+ {&(_ZTV7ee43030[4]), 4,11},
+ {&(_tg__ZTV6dd3030__7ee43030[4]), 4,5},
+ {&(_tg__ZTV5cc030__6dd3030__7ee43030[4]), 4,5},
+ {&(_ZTV7ee43030[10]), 10,11},
+ {&(_tg__ZTV5cc030__7ee43030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc030__7ee43030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee43030[];
+extern VTBL_ENTRY _ZTV7ee43030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43030[];
+static VTBL_ENTRY alt_thunk_names14[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd30303fooEv,_ZTv0_n16_N6dd30303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30303fooEv,_ZThn12_N6dd30303fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30303fooEv,_ZThn12_N6dd30303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43030 = { "ee43030", // class name
+ bases_ee43030, 4,
+ &(vtc_ee43030[0]), // expected_vtbl_contents
+ &(vtt_ee43030[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee43030),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43030),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43030),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names14,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53030 : virtual dd3030 {
+ int e;
+ virtual void bar(); // _ZN7ee530303barEv
+ ~ee53030(); // tgen
+ ee53030(); // tgen
+};
+//SIG(1 ee53030) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee53030 ::bar(){vfunc_called(this, "_ZN7ee530303barEv");}
+ee53030 ::~ee53030(){ note_dtor("ee53030", this);} // tgen
+ee53030 ::ee53030(){ note_ctor("ee53030", this);} // tgen
+
+static void Test_ee53030()
+{
+ extern Class_Descriptor cd_ee53030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee53030, buf);
+ ee53030 *dp, &lv = *(dp=new (buf) ee53030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee53030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*), ABISELECT(48,28), "ee53030");
+ check_base_class_offset(lv, (bb30*)(cc030*), ABISELECT(32,16), "ee53030");
+ check_base_class_offset(lv, (cc030*)(dd3030*), ABISELECT(32,16), "ee53030");
+ check_base_class_offset(lv, (dd3030*), ABISELECT(16,8), "ee53030");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53030.e");
+ test_class_info(&lv, &cd_ee53030);
+ dp->~ee53030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53030(Test_ee53030, "ee53030", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee53030C1Ev();
+extern void _ZN7ee53030D1Ev();
+Name_Map name_map_ee53030[] = {
+ NSPAIR(_ZN7ee53030C1Ev),
+ NSPAIR(_ZN7ee53030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+extern Class_Descriptor cd_dd3030;
+extern VTBL_ENTRY _ZTI6dd3030[];
+extern VTBL_ENTRY _ZTV6dd3030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3030[];
+static Base_Class bases_ee53030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(48,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3030, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee53030[];
+extern void _ZN7ee530303barEv();
+extern void _ZN6dd30303fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd30303fooEv,_ZTv0_n16_N6dd30303fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30303fooEv,_ZThn8_N6dd30303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53030[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53030[0]),
+ (VTBL_ENTRY)&_ZN7ee530303barEv,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53030[0]),
+ (VTBL_ENTRY)&_ZN6dd30303fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53030[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd30303fooEv,_ZTv0_n16_N6dd30303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee53030[];
+extern void _ZN6dd30303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3030__7ee53030[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3030[0]),
+ (VTBL_ENTRY)&_ZN6dd30303fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd30303fooEv,_ZTv0_n16_N6dd30303fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30303fooEv,_ZThn8_N6dd30303fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc030__6dd3030__7ee53030[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3030[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd30303fooEv,_ZTv0_n16_N6dd30303fooEv),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc030__7ee53030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc030__7ee53030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee53030[] = {
+ {&(_ZTV7ee53030[5]), 5,17},
+ {&(_ZTV7ee53030[11]), 11,17},
+ {&(_ZTV7ee53030[16]), 16,17},
+ {&(_tg__ZTV6dd3030__7ee53030[4]), 4,5},
+ {&(_tg__ZTV5cc030__6dd3030__7ee53030[4]), 4,5},
+ {&(_tg__ZTV5cc030__7ee53030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc030__7ee53030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee53030[];
+extern VTBL_ENTRY _ZTV7ee53030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53030[];
+static VTBL_ENTRY alt_thunk_names15[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd30303fooEv,_ZTv0_n16_N6dd30303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30303fooEv,_ZThn8_N6dd30303fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30303fooEv,_ZThn8_N6dd30303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53030 = { "ee53030", // class name
+ bases_ee53030, 4,
+ &(vtc_ee53030[0]), // expected_vtbl_contents
+ &(vtt_ee53030[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee53030),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53030),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53030),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names15,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63030 : dd3030 {
+ int e;
+ virtual void foo(); // _ZN7ee630303fooEv
+ virtual void bar(); // _ZN7ee630303barEv
+ ~ee63030(); // tgen
+ ee63030(); // tgen
+};
+//SIG(1 ee63030) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63030 ::foo(){vfunc_called(this, "_ZN7ee630303fooEv");}
+void ee63030 ::bar(){vfunc_called(this, "_ZN7ee630303barEv");}
+ee63030 ::~ee63030(){ note_dtor("ee63030", this);} // tgen
+ee63030 ::ee63030(){ note_ctor("ee63030", this);} // tgen
+
+static void Test_ee63030()
+{
+ extern Class_Descriptor cd_ee63030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee63030, buf);
+ ee63030 *dp, &lv = *(dp=new (buf) ee63030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee63030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*), ABISELECT(32,24), "ee63030");
+ check_base_class_offset(lv, (bb30*)(cc030*), ABISELECT(16,12), "ee63030");
+ check_base_class_offset(lv, (cc030*)(dd3030*), ABISELECT(16,12), "ee63030");
+ check_base_class_offset(lv, (dd3030*), 0, "ee63030");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63030.e");
+ test_class_info(&lv, &cd_ee63030);
+ dp->~ee63030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63030(Test_ee63030, "ee63030", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee63030C1Ev();
+extern void _ZN7ee63030D1Ev();
+Name_Map name_map_ee63030[] = {
+ NSPAIR(_ZN7ee63030C1Ev),
+ NSPAIR(_ZN7ee63030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+extern Class_Descriptor cd_dd3030;
+extern VTBL_ENTRY _ZTI6dd3030[];
+extern VTBL_ENTRY _ZTV6dd3030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3030[];
+static Base_Class bases_ee63030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3030, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63030[];
+extern void _ZN7ee630303fooEv();
+extern void _ZN7ee630303barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee630303fooEv,_ZTv0_n16_N7ee630303fooEv)();
+extern void ABISELECT(_ZThn16_N7ee630303fooEv,_ZThn12_N7ee630303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63030[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63030[0]),
+ (VTBL_ENTRY)&_ZN7ee630303fooEv,
+ (VTBL_ENTRY)&_ZN7ee630303barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63030[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee630303fooEv,_ZTv0_n16_N7ee630303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee63030[];
+extern void _ZN6dd30303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3030__7ee63030[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3030[0]),
+ (VTBL_ENTRY)&_ZN6dd30303fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd30303fooEv,_ZTv0_n16_N6dd30303fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30303fooEv,_ZThn12_N6dd30303fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc030__6dd3030__7ee63030[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3030[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd30303fooEv,_ZTv0_n16_N6dd30303fooEv),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc030__7ee63030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc030__7ee63030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee63030[] = {
+ {&(_ZTV7ee63030[4]), 4,11},
+ {&(_tg__ZTV6dd3030__7ee63030[4]), 4,5},
+ {&(_tg__ZTV5cc030__6dd3030__7ee63030[4]), 4,5},
+ {&(_ZTV7ee63030[10]), 10,11},
+ {&(_tg__ZTV5cc030__7ee63030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc030__7ee63030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee63030[];
+extern VTBL_ENTRY _ZTV7ee63030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63030[];
+static VTBL_ENTRY alt_thunk_names16[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd30303fooEv,_ZTv0_n16_N6dd30303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30303fooEv,_ZThn12_N6dd30303fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee630303fooEv,_ZTv0_n16_N7ee630303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee630303fooEv,_ZThn12_N7ee630303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63030 = { "ee63030", // class name
+ bases_ee63030, 4,
+ &(vtc_ee63030[0]), // expected_vtbl_contents
+ &(vtt_ee63030[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee63030),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63030),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63030),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names16,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73030 : virtual dd3030 {
+ int e;
+ virtual void foo(); // _ZN7ee730303fooEv
+ virtual void bar(); // _ZN7ee730303barEv
+ ~ee73030(); // tgen
+ ee73030(); // tgen
+};
+//SIG(1 ee73030) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73030 ::foo(){vfunc_called(this, "_ZN7ee730303fooEv");}
+void ee73030 ::bar(){vfunc_called(this, "_ZN7ee730303barEv");}
+ee73030 ::~ee73030(){ note_dtor("ee73030", this);} // tgen
+ee73030 ::ee73030(){ note_ctor("ee73030", this);} // tgen
+
+static void Test_ee73030()
+{
+ extern Class_Descriptor cd_ee73030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee73030, buf);
+ ee73030 *dp, &lv = *(dp=new (buf) ee73030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee73030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*), ABISELECT(48,28), "ee73030");
+ check_base_class_offset(lv, (bb30*)(cc030*), ABISELECT(32,16), "ee73030");
+ check_base_class_offset(lv, (cc030*)(dd3030*), ABISELECT(32,16), "ee73030");
+ check_base_class_offset(lv, (dd3030*), ABISELECT(16,8), "ee73030");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73030.e");
+ test_class_info(&lv, &cd_ee73030);
+ dp->~ee73030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73030(Test_ee73030, "ee73030", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee73030C1Ev();
+extern void _ZN7ee73030D1Ev();
+Name_Map name_map_ee73030[] = {
+ NSPAIR(_ZN7ee73030C1Ev),
+ NSPAIR(_ZN7ee73030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+extern Class_Descriptor cd_dd3030;
+extern VTBL_ENTRY _ZTI6dd3030[];
+extern VTBL_ENTRY _ZTV6dd3030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3030[];
+static Base_Class bases_ee73030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(48,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3030, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee73030[];
+extern void _ZN7ee730303fooEv();
+extern void _ZN7ee730303barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee730303fooEv,_ZTv0_n20_N7ee730303fooEv)();
+extern void ABISELECT(_ZThn16_N7ee730303fooEv,_ZThn8_N7ee730303fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee730303fooEv,_ZTv0_n16_N7ee730303fooEv)();
+extern void ABISELECT(_ZThn32_N7ee730303fooEv,_ZThn16_N7ee730303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73030[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73030[0]),
+ (VTBL_ENTRY)&_ZN7ee730303fooEv,
+ (VTBL_ENTRY)&_ZN7ee730303barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73030[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee730303fooEv,_ZTv0_n20_N7ee730303fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73030[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee730303fooEv,_ZTv0_n16_N7ee730303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee73030[];
+extern void _ZN6dd30303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3030__7ee73030[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3030[0]),
+ (VTBL_ENTRY)&_ZN6dd30303fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd30303fooEv,_ZTv0_n16_N6dd30303fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30303fooEv,_ZThn8_N6dd30303fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc030__6dd3030__7ee73030[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3030[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd30303fooEv,_ZTv0_n16_N6dd30303fooEv),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc030__7ee73030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc030__7ee73030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee73030[] = {
+ {&(_ZTV7ee73030[5]), 5,18},
+ {&(_ZTV7ee73030[12]), 12,18},
+ {&(_ZTV7ee73030[17]), 17,18},
+ {&(_tg__ZTV6dd3030__7ee73030[4]), 4,5},
+ {&(_tg__ZTV5cc030__6dd3030__7ee73030[4]), 4,5},
+ {&(_tg__ZTV5cc030__7ee73030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc030__7ee73030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee73030[];
+extern VTBL_ENTRY _ZTV7ee73030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73030[];
+static VTBL_ENTRY alt_thunk_names17[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd30303fooEv,_ZTv0_n16_N6dd30303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30303fooEv,_ZThn8_N6dd30303fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee730303fooEv,_ZTv0_n16_N7ee730303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee730303fooEv,_ZThn16_N7ee730303fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee730303fooEv,_ZTv0_n20_N7ee730303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee730303fooEv,_ZThn8_N7ee730303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73030 = { "ee73030", // class name
+ bases_ee73030, 4,
+ &(vtc_ee73030[0]), // expected_vtbl_contents
+ &(vtt_ee73030[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee73030),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73030),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73030),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names17,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4030 : cc030 {
+ int d;
+ virtual void bar(); // _ZN6dd40303barEv
+ ~dd4030(); // tgen
+ dd4030(); // tgen
+};
+//SIG(-1 dd4030) C1{ BC2{ BC3{ VBC4{ Fi} v2 Fi} Fi} v1 Fi}
+
+
+void dd4030 ::bar(){vfunc_called(this, "_ZN6dd40303barEv");}
+dd4030 ::~dd4030(){ note_dtor("dd4030", this);} // tgen
+dd4030 ::dd4030(){ note_ctor("dd4030", this);} // tgen
+
+static void Test_dd4030()
+{
+ extern Class_Descriptor cd_dd4030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd4030, buf);
+ dd4030 *dp, &lv = *(dp=new (buf) dd4030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd4030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*), ABISELECT(20,16), "dd4030");
+ check_base_class_offset(lv, (bb30*)(cc030*), 0, "dd4030");
+ check_base_class_offset(lv, (cc030*), 0, "dd4030");
+ check_field_offset(lv, d, ABISELECT(16,12), "dd4030.d");
+ test_class_info(&lv, &cd_dd4030);
+ dp->~dd4030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4030(Test_dd4030, "dd4030", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd4030C1Ev();
+extern void _ZN6dd4030D1Ev();
+Name_Map name_map_dd4030[] = {
+ NSPAIR(_ZN6dd4030C1Ev),
+ NSPAIR(_ZN6dd4030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+static Base_Class bases_dd4030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd4030[];
+extern void _ZN4bb303fooEv();
+extern void _ZN6dd40303barEv();
+static VTBL_ENTRY vtc_dd4030[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+ (VTBL_ENTRY)&_ZN6dd40303barEv,
+};
+extern VTBL_ENTRY _ZTV6dd4030[];
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc030__6dd4030[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc030__6dd4030[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_dd4030[] = {
+ {&(_ZTV6dd4030[3]), 3,5},
+ {&(_tg__ZTV5cc030__6dd4030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc030__6dd4030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd4030[];
+extern VTBL_ENTRY _ZTV6dd4030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4030[];
+Class_Descriptor cd_dd4030 = { "dd4030", // class name
+ bases_dd4030, 3,
+ &(vtc_dd4030[0]), // expected_vtbl_contents
+ &(vtt_dd4030[0]), // expected_vtt_contents
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd4030),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4030),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd4030),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 ee04030 : dd4030 {
+ int e;
+ ~ee04030(); // tgen
+ ee04030(); // tgen
+};
+//SIG(1 ee04030) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee04030 ::~ee04030(){ note_dtor("ee04030", this);} // tgen
+ee04030 ::ee04030(){ note_ctor("ee04030", this);} // tgen
+
+static void Test_ee04030()
+{
+ extern Class_Descriptor cd_ee04030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee04030, buf);
+ ee04030 *dp, &lv = *(dp=new (buf) ee04030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee04030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*)(dd4030*), ABISELECT(24,20), "ee04030");
+ check_base_class_offset(lv, (bb30*)(cc030*)(dd4030*), 0, "ee04030");
+ check_base_class_offset(lv, (cc030*)(dd4030*), 0, "ee04030");
+ check_base_class_offset(lv, (dd4030*), 0, "ee04030");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee04030.e");
+ test_class_info(&lv, &cd_ee04030);
+ dp->~ee04030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04030(Test_ee04030, "ee04030", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee04030C1Ev();
+extern void _ZN7ee04030D1Ev();
+Name_Map name_map_ee04030[] = {
+ NSPAIR(_ZN7ee04030C1Ev),
+ NSPAIR(_ZN7ee04030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+extern Class_Descriptor cd_dd4030;
+extern VTBL_ENTRY _ZTI6dd4030[];
+extern VTBL_ENTRY _ZTV6dd4030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4030[];
+static Base_Class bases_ee04030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4030, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04030[];
+extern void _ZN4bb303fooEv();
+extern void _ZN6dd40303barEv();
+static VTBL_ENTRY vtc_ee04030[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+ (VTBL_ENTRY)&_ZN6dd40303barEv,
+};
+extern VTBL_ENTRY _ZTV7ee04030[];
+extern void _ZN4bb303fooEv();
+extern void _ZN6dd40303barEv();
+static VTBL_ENTRY _tg__ZTV6dd4030__7ee04030[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+ (VTBL_ENTRY)&_ZN6dd40303barEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc0306dd4030__7ee04030[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc0306dd4030__7ee04030[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee04030[] = {
+ {&(_ZTV7ee04030[3]), 3,5},
+ {&(_tg__ZTV6dd4030__7ee04030[3]), 3,5},
+ {&(_tg__ZTV5cc0306dd4030__7ee04030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc0306dd4030__7ee04030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee04030[];
+extern VTBL_ENTRY _ZTV7ee04030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee04030[];
+Class_Descriptor cd_ee04030 = { "ee04030", // class name
+ bases_ee04030, 4,
+ &(vtc_ee04030[0]), // expected_vtbl_contents
+ &(vtt_ee04030[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee04030),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04030),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee04030),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee14030 : virtual dd4030 {
+ int e;
+ ~ee14030(); // tgen
+ ee14030(); // tgen
+};
+//SIG(1 ee14030) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee14030 ::~ee14030(){ note_dtor("ee14030", this);} // tgen
+ee14030 ::ee14030(){ note_ctor("ee14030", this);} // tgen
+
+static void Test_ee14030()
+{
+ extern Class_Descriptor cd_ee14030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee14030, buf);
+ ee14030 *dp, &lv = *(dp=new (buf) ee14030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee14030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*)(dd4030*), ABISELECT(36,24), "ee14030");
+ check_base_class_offset(lv, (bb30*)(cc030*)(dd4030*), ABISELECT(16,8), "ee14030");
+ check_base_class_offset(lv, (cc030*)(dd4030*), ABISELECT(16,8), "ee14030");
+ check_base_class_offset(lv, (dd4030*), ABISELECT(16,8), "ee14030");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14030.e");
+ test_class_info(&lv, &cd_ee14030);
+ dp->~ee14030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14030(Test_ee14030, "ee14030", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee14030C1Ev();
+extern void _ZN7ee14030D1Ev();
+Name_Map name_map_ee14030[] = {
+ NSPAIR(_ZN7ee14030C1Ev),
+ NSPAIR(_ZN7ee14030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+extern Class_Descriptor cd_dd4030;
+extern VTBL_ENTRY _ZTI6dd4030[];
+extern VTBL_ENTRY _ZTV6dd4030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4030[];
+static Base_Class bases_ee14030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4030, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee14030[];
+extern void _ZN4bb303fooEv();
+extern void _ZN6dd40303barEv();
+static VTBL_ENTRY vtc_ee14030[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14030[0]),
+ 0,
+ 0,
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+ (VTBL_ENTRY)&_ZN6dd40303barEv,
+};
+extern VTBL_ENTRY _ZTV7ee14030[];
+extern void _ZN4bb303fooEv();
+extern void _ZN6dd40303barEv();
+static VTBL_ENTRY _tg__ZTV6dd4030__7ee14030[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+ (VTBL_ENTRY)&_ZN6dd40303barEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc0306dd4030__7ee14030[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc0306dd4030__7ee14030[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee14030[] = {
+ {&(_ZTV7ee14030[4]), 4,11},
+ {&(_ZTV7ee14030[9]), 9,11},
+ {&(_tg__ZTV6dd4030__7ee14030[3]), 3,5},
+ {&(_tg__ZTV5cc0306dd4030__7ee14030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc0306dd4030__7ee14030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee14030[];
+extern VTBL_ENTRY _ZTV7ee14030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14030[];
+Class_Descriptor cd_ee14030 = { "ee14030", // class name
+ bases_ee14030, 4,
+ &(vtc_ee14030[0]), // expected_vtbl_contents
+ &(vtt_ee14030[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee14030),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14030),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14030),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee24030 : dd4030 {
+ int e;
+ virtual void foo(); // _ZN7ee240303fooEv
+ ~ee24030(); // tgen
+ ee24030(); // tgen
+};
+//SIG(1 ee24030) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee24030 ::foo(){vfunc_called(this, "_ZN7ee240303fooEv");}
+ee24030 ::~ee24030(){ note_dtor("ee24030", this);} // tgen
+ee24030 ::ee24030(){ note_ctor("ee24030", this);} // tgen
+
+static void Test_ee24030()
+{
+ extern Class_Descriptor cd_ee24030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee24030, buf);
+ ee24030 *dp, &lv = *(dp=new (buf) ee24030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee24030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*)(dd4030*), ABISELECT(24,20), "ee24030");
+ check_base_class_offset(lv, (bb30*)(cc030*)(dd4030*), 0, "ee24030");
+ check_base_class_offset(lv, (cc030*)(dd4030*), 0, "ee24030");
+ check_base_class_offset(lv, (dd4030*), 0, "ee24030");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee24030.e");
+ test_class_info(&lv, &cd_ee24030);
+ dp->~ee24030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24030(Test_ee24030, "ee24030", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee24030C1Ev();
+extern void _ZN7ee24030D1Ev();
+Name_Map name_map_ee24030[] = {
+ NSPAIR(_ZN7ee24030C1Ev),
+ NSPAIR(_ZN7ee24030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+extern Class_Descriptor cd_dd4030;
+extern VTBL_ENTRY _ZTI6dd4030[];
+extern VTBL_ENTRY _ZTV6dd4030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4030[];
+static Base_Class bases_ee24030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4030, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24030[];
+extern void _ZN7ee240303fooEv();
+extern void _ZN6dd40303barEv();
+static VTBL_ENTRY vtc_ee24030[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24030[0]),
+ (VTBL_ENTRY)&_ZN7ee240303fooEv,
+ (VTBL_ENTRY)&_ZN6dd40303barEv,
+};
+extern VTBL_ENTRY _ZTV7ee24030[];
+extern void _ZN4bb303fooEv();
+extern void _ZN6dd40303barEv();
+static VTBL_ENTRY _tg__ZTV6dd4030__7ee24030[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+ (VTBL_ENTRY)&_ZN6dd40303barEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc0306dd4030__7ee24030[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc0306dd4030__7ee24030[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee24030[] = {
+ {&(_ZTV7ee24030[3]), 3,5},
+ {&(_tg__ZTV6dd4030__7ee24030[3]), 3,5},
+ {&(_tg__ZTV5cc0306dd4030__7ee24030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc0306dd4030__7ee24030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee24030[];
+extern VTBL_ENTRY _ZTV7ee24030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee24030[];
+Class_Descriptor cd_ee24030 = { "ee24030", // class name
+ bases_ee24030, 4,
+ &(vtc_ee24030[0]), // expected_vtbl_contents
+ &(vtt_ee24030[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee24030),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24030),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee24030),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee34030 : virtual dd4030 {
+ int e;
+ virtual void foo(); // _ZN7ee340303fooEv
+ ~ee34030(); // tgen
+ ee34030(); // tgen
+};
+//SIG(1 ee34030) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee34030 ::foo(){vfunc_called(this, "_ZN7ee340303fooEv");}
+ee34030 ::~ee34030(){ note_dtor("ee34030", this);} // tgen
+ee34030 ::ee34030(){ note_ctor("ee34030", this);} // tgen
+
+static void Test_ee34030()
+{
+ extern Class_Descriptor cd_ee34030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee34030, buf);
+ ee34030 *dp, &lv = *(dp=new (buf) ee34030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee34030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*)(dd4030*), ABISELECT(36,24), "ee34030");
+ check_base_class_offset(lv, (bb30*)(cc030*)(dd4030*), ABISELECT(16,8), "ee34030");
+ check_base_class_offset(lv, (cc030*)(dd4030*), ABISELECT(16,8), "ee34030");
+ check_base_class_offset(lv, (dd4030*), ABISELECT(16,8), "ee34030");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34030.e");
+ test_class_info(&lv, &cd_ee34030);
+ dp->~ee34030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34030(Test_ee34030, "ee34030", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee34030C1Ev();
+extern void _ZN7ee34030D1Ev();
+Name_Map name_map_ee34030[] = {
+ NSPAIR(_ZN7ee34030C1Ev),
+ NSPAIR(_ZN7ee34030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+extern Class_Descriptor cd_dd4030;
+extern VTBL_ENTRY _ZTI6dd4030[];
+extern VTBL_ENTRY _ZTV6dd4030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4030[];
+static Base_Class bases_ee34030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4030, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee34030[];
+extern void _ZN7ee340303fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee340303fooEv,_ZTv0_n16_N7ee340303fooEv)();
+extern void ABISELECT(_ZThn16_N7ee340303fooEv,_ZThn8_N7ee340303fooEv)() __attribute__((weak));
+extern void _ZN6dd40303barEv();
+static VTBL_ENTRY vtc_ee34030[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34030[0]),
+ (VTBL_ENTRY)&_ZN7ee340303fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34030[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee340303fooEv,_ZTv0_n16_N7ee340303fooEv),
+ (VTBL_ENTRY)&_ZN6dd40303barEv,
+};
+extern VTBL_ENTRY _ZTV7ee34030[];
+extern void _ZN4bb303fooEv();
+extern void _ZN6dd40303barEv();
+static VTBL_ENTRY _tg__ZTV6dd4030__7ee34030[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+ (VTBL_ENTRY)&_ZN6dd40303barEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc0306dd4030__7ee34030[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc0306dd4030__7ee34030[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee34030[] = {
+ {&(_ZTV7ee34030[4]), 4,12},
+ {&(_ZTV7ee34030[10]), 10,12},
+ {&(_tg__ZTV6dd4030__7ee34030[3]), 3,5},
+ {&(_tg__ZTV5cc0306dd4030__7ee34030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc0306dd4030__7ee34030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee34030[];
+extern VTBL_ENTRY _ZTV7ee34030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34030[];
+static VTBL_ENTRY alt_thunk_names18[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee340303fooEv,_ZTv0_n16_N7ee340303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee340303fooEv,_ZThn8_N7ee340303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34030 = { "ee34030", // class name
+ bases_ee34030, 4,
+ &(vtc_ee34030[0]), // expected_vtbl_contents
+ &(vtt_ee34030[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee34030),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34030),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34030),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names18,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44030 : dd4030 {
+ int e;
+ virtual void bar(); // _ZN7ee440303barEv
+ ~ee44030(); // tgen
+ ee44030(); // tgen
+};
+//SIG(1 ee44030) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee44030 ::bar(){vfunc_called(this, "_ZN7ee440303barEv");}
+ee44030 ::~ee44030(){ note_dtor("ee44030", this);} // tgen
+ee44030 ::ee44030(){ note_ctor("ee44030", this);} // tgen
+
+static void Test_ee44030()
+{
+ extern Class_Descriptor cd_ee44030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee44030, buf);
+ ee44030 *dp, &lv = *(dp=new (buf) ee44030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee44030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*)(dd4030*), ABISELECT(24,20), "ee44030");
+ check_base_class_offset(lv, (bb30*)(cc030*)(dd4030*), 0, "ee44030");
+ check_base_class_offset(lv, (cc030*)(dd4030*), 0, "ee44030");
+ check_base_class_offset(lv, (dd4030*), 0, "ee44030");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee44030.e");
+ test_class_info(&lv, &cd_ee44030);
+ dp->~ee44030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44030(Test_ee44030, "ee44030", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee44030C1Ev();
+extern void _ZN7ee44030D1Ev();
+Name_Map name_map_ee44030[] = {
+ NSPAIR(_ZN7ee44030C1Ev),
+ NSPAIR(_ZN7ee44030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+extern Class_Descriptor cd_dd4030;
+extern VTBL_ENTRY _ZTI6dd4030[];
+extern VTBL_ENTRY _ZTV6dd4030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4030[];
+static Base_Class bases_ee44030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4030, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44030[];
+extern void _ZN4bb303fooEv();
+extern void _ZN7ee440303barEv();
+static VTBL_ENTRY vtc_ee44030[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+ (VTBL_ENTRY)&_ZN7ee440303barEv,
+};
+extern VTBL_ENTRY _ZTV7ee44030[];
+extern void _ZN4bb303fooEv();
+extern void _ZN6dd40303barEv();
+static VTBL_ENTRY _tg__ZTV6dd4030__7ee44030[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+ (VTBL_ENTRY)&_ZN6dd40303barEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc0306dd4030__7ee44030[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc0306dd4030__7ee44030[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee44030[] = {
+ {&(_ZTV7ee44030[3]), 3,5},
+ {&(_tg__ZTV6dd4030__7ee44030[3]), 3,5},
+ {&(_tg__ZTV5cc0306dd4030__7ee44030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc0306dd4030__7ee44030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee44030[];
+extern VTBL_ENTRY _ZTV7ee44030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee44030[];
+Class_Descriptor cd_ee44030 = { "ee44030", // class name
+ bases_ee44030, 4,
+ &(vtc_ee44030[0]), // expected_vtbl_contents
+ &(vtt_ee44030[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee44030),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44030),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee44030),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee54030 : virtual dd4030 {
+ int e;
+ virtual void bar(); // _ZN7ee540303barEv
+ ~ee54030(); // tgen
+ ee54030(); // tgen
+};
+//SIG(1 ee54030) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee54030 ::bar(){vfunc_called(this, "_ZN7ee540303barEv");}
+ee54030 ::~ee54030(){ note_dtor("ee54030", this);} // tgen
+ee54030 ::ee54030(){ note_ctor("ee54030", this);} // tgen
+
+static void Test_ee54030()
+{
+ extern Class_Descriptor cd_ee54030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee54030, buf);
+ ee54030 *dp, &lv = *(dp=new (buf) ee54030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee54030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*)(dd4030*), ABISELECT(36,24), "ee54030");
+ check_base_class_offset(lv, (bb30*)(cc030*)(dd4030*), ABISELECT(16,8), "ee54030");
+ check_base_class_offset(lv, (cc030*)(dd4030*), ABISELECT(16,8), "ee54030");
+ check_base_class_offset(lv, (dd4030*), ABISELECT(16,8), "ee54030");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54030.e");
+ test_class_info(&lv, &cd_ee54030);
+ dp->~ee54030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54030(Test_ee54030, "ee54030", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee54030C1Ev();
+extern void _ZN7ee54030D1Ev();
+Name_Map name_map_ee54030[] = {
+ NSPAIR(_ZN7ee54030C1Ev),
+ NSPAIR(_ZN7ee54030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+extern Class_Descriptor cd_dd4030;
+extern VTBL_ENTRY _ZTI6dd4030[];
+extern VTBL_ENTRY _ZTV6dd4030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4030[];
+static Base_Class bases_ee54030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4030, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee54030[];
+extern void _ZN7ee540303barEv();
+extern void _ZN4bb303fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee540303barEv,_ZTv0_n20_N7ee540303barEv)();
+extern void ABISELECT(_ZThn16_N7ee540303barEv,_ZThn8_N7ee540303barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54030[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54030[0]),
+ (VTBL_ENTRY)&_ZN7ee540303barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee540303barEv,_ZTv0_n20_N7ee540303barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54030[];
+extern void _ZN4bb303fooEv();
+extern void _ZN6dd40303barEv();
+static VTBL_ENTRY _tg__ZTV6dd4030__7ee54030[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+ (VTBL_ENTRY)&_ZN6dd40303barEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc0306dd4030__7ee54030[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc0306dd4030__7ee54030[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee54030[] = {
+ {&(_ZTV7ee54030[4]), 4,12},
+ {&(_ZTV7ee54030[10]), 10,12},
+ {&(_tg__ZTV6dd4030__7ee54030[3]), 3,5},
+ {&(_tg__ZTV5cc0306dd4030__7ee54030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc0306dd4030__7ee54030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee54030[];
+extern VTBL_ENTRY _ZTV7ee54030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54030[];
+static VTBL_ENTRY alt_thunk_names19[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee540303barEv,_ZTv0_n20_N7ee540303barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee540303barEv,_ZThn8_N7ee540303barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54030 = { "ee54030", // class name
+ bases_ee54030, 4,
+ &(vtc_ee54030[0]), // expected_vtbl_contents
+ &(vtt_ee54030[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee54030),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54030),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54030),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names19,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64030 : dd4030 {
+ int e;
+ virtual void foo(); // _ZN7ee640303fooEv
+ virtual void bar(); // _ZN7ee640303barEv
+ ~ee64030(); // tgen
+ ee64030(); // tgen
+};
+//SIG(1 ee64030) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64030 ::foo(){vfunc_called(this, "_ZN7ee640303fooEv");}
+void ee64030 ::bar(){vfunc_called(this, "_ZN7ee640303barEv");}
+ee64030 ::~ee64030(){ note_dtor("ee64030", this);} // tgen
+ee64030 ::ee64030(){ note_ctor("ee64030", this);} // tgen
+
+static void Test_ee64030()
+{
+ extern Class_Descriptor cd_ee64030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee64030, buf);
+ ee64030 *dp, &lv = *(dp=new (buf) ee64030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee64030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*)(dd4030*), ABISELECT(24,20), "ee64030");
+ check_base_class_offset(lv, (bb30*)(cc030*)(dd4030*), 0, "ee64030");
+ check_base_class_offset(lv, (cc030*)(dd4030*), 0, "ee64030");
+ check_base_class_offset(lv, (dd4030*), 0, "ee64030");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee64030.e");
+ test_class_info(&lv, &cd_ee64030);
+ dp->~ee64030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64030(Test_ee64030, "ee64030", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee64030C1Ev();
+extern void _ZN7ee64030D1Ev();
+Name_Map name_map_ee64030[] = {
+ NSPAIR(_ZN7ee64030C1Ev),
+ NSPAIR(_ZN7ee64030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+extern Class_Descriptor cd_dd4030;
+extern VTBL_ENTRY _ZTI6dd4030[];
+extern VTBL_ENTRY _ZTV6dd4030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4030[];
+static Base_Class bases_ee64030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4030, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64030[];
+extern void _ZN7ee640303fooEv();
+extern void _ZN7ee640303barEv();
+static VTBL_ENTRY vtc_ee64030[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64030[0]),
+ (VTBL_ENTRY)&_ZN7ee640303fooEv,
+ (VTBL_ENTRY)&_ZN7ee640303barEv,
+};
+extern VTBL_ENTRY _ZTV7ee64030[];
+extern void _ZN4bb303fooEv();
+extern void _ZN6dd40303barEv();
+static VTBL_ENTRY _tg__ZTV6dd4030__7ee64030[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+ (VTBL_ENTRY)&_ZN6dd40303barEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc0306dd4030__7ee64030[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc0306dd4030__7ee64030[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee64030[] = {
+ {&(_ZTV7ee64030[3]), 3,5},
+ {&(_tg__ZTV6dd4030__7ee64030[3]), 3,5},
+ {&(_tg__ZTV5cc0306dd4030__7ee64030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc0306dd4030__7ee64030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee64030[];
+extern VTBL_ENTRY _ZTV7ee64030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee64030[];
+Class_Descriptor cd_ee64030 = { "ee64030", // class name
+ bases_ee64030, 4,
+ &(vtc_ee64030[0]), // expected_vtbl_contents
+ &(vtt_ee64030[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee64030),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64030),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee64030),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee74030 : virtual dd4030 {
+ int e;
+ virtual void foo(); // _ZN7ee740303fooEv
+ virtual void bar(); // _ZN7ee740303barEv
+ ~ee74030(); // tgen
+ ee74030(); // tgen
+};
+//SIG(1 ee74030) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74030 ::foo(){vfunc_called(this, "_ZN7ee740303fooEv");}
+void ee74030 ::bar(){vfunc_called(this, "_ZN7ee740303barEv");}
+ee74030 ::~ee74030(){ note_dtor("ee74030", this);} // tgen
+ee74030 ::ee74030(){ note_ctor("ee74030", this);} // tgen
+
+static void Test_ee74030()
+{
+ extern Class_Descriptor cd_ee74030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee74030, buf);
+ ee74030 *dp, &lv = *(dp=new (buf) ee74030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee74030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*)(dd4030*), ABISELECT(36,24), "ee74030");
+ check_base_class_offset(lv, (bb30*)(cc030*)(dd4030*), ABISELECT(16,8), "ee74030");
+ check_base_class_offset(lv, (cc030*)(dd4030*), ABISELECT(16,8), "ee74030");
+ check_base_class_offset(lv, (dd4030*), ABISELECT(16,8), "ee74030");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74030.e");
+ test_class_info(&lv, &cd_ee74030);
+ dp->~ee74030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74030(Test_ee74030, "ee74030", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee74030C1Ev();
+extern void _ZN7ee74030D1Ev();
+Name_Map name_map_ee74030[] = {
+ NSPAIR(_ZN7ee74030C1Ev),
+ NSPAIR(_ZN7ee74030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+extern Class_Descriptor cd_dd4030;
+extern VTBL_ENTRY _ZTI6dd4030[];
+extern VTBL_ENTRY _ZTV6dd4030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4030[];
+static Base_Class bases_ee74030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4030, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee74030[];
+extern void _ZN7ee740303fooEv();
+extern void _ZN7ee740303barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee740303fooEv,_ZTv0_n16_N7ee740303fooEv)();
+extern void ABISELECT(_ZThn16_N7ee740303fooEv,_ZThn8_N7ee740303fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee740303barEv,_ZTv0_n20_N7ee740303barEv)();
+extern void ABISELECT(_ZThn16_N7ee740303barEv,_ZThn8_N7ee740303barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74030[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74030[0]),
+ (VTBL_ENTRY)&_ZN7ee740303fooEv,
+ (VTBL_ENTRY)&_ZN7ee740303barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74030[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee740303fooEv,_ZTv0_n16_N7ee740303fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee740303barEv,_ZTv0_n20_N7ee740303barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74030[];
+extern void _ZN4bb303fooEv();
+extern void _ZN6dd40303barEv();
+static VTBL_ENTRY _tg__ZTV6dd4030__7ee74030[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+ (VTBL_ENTRY)&_ZN6dd40303barEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc0306dd4030__7ee74030[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc0306dd4030__7ee74030[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee74030[] = {
+ {&(_ZTV7ee74030[4]), 4,13},
+ {&(_ZTV7ee74030[11]), 11,13},
+ {&(_tg__ZTV6dd4030__7ee74030[3]), 3,5},
+ {&(_tg__ZTV5cc0306dd4030__7ee74030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc0306dd4030__7ee74030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee74030[];
+extern VTBL_ENTRY _ZTV7ee74030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74030[];
+static VTBL_ENTRY alt_thunk_names20[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee740303barEv,_ZTv0_n20_N7ee740303barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee740303barEv,_ZThn8_N7ee740303barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee740303fooEv,_ZTv0_n16_N7ee740303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee740303fooEv,_ZThn8_N7ee740303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74030 = { "ee74030", // class name
+ bases_ee74030, 4,
+ &(vtc_ee74030[0]), // expected_vtbl_contents
+ &(vtt_ee74030[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee74030),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74030),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74030),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names20,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5030 : virtual cc030 {
+ int d;
+ virtual void bar(); // _ZN6dd50303barEv
+ ~dd5030(); // tgen
+ dd5030(); // tgen
+};
+//SIG(-1 dd5030) C1{ VBC2{ BC3{ VBC4{ Fi} v2 Fi} Fi} v1 Fi}
+
+
+void dd5030 ::bar(){vfunc_called(this, "_ZN6dd50303barEv");}
+dd5030 ::~dd5030(){ note_dtor("dd5030", this);} // tgen
+dd5030 ::dd5030(){ note_ctor("dd5030", this);} // tgen
+
+static void Test_dd5030()
+{
+ extern Class_Descriptor cd_dd5030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd5030, buf);
+ dd5030 *dp, &lv = *(dp=new (buf) dd5030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd5030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*), ABISELECT(32,20), "dd5030");
+ check_base_class_offset(lv, (bb30*)(cc030*), ABISELECT(16,8), "dd5030");
+ check_base_class_offset(lv, (cc030*), ABISELECT(16,8), "dd5030");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5030.d");
+ test_class_info(&lv, &cd_dd5030);
+ dp->~dd5030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5030(Test_dd5030, "dd5030", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd5030C1Ev();
+extern void _ZN6dd5030D1Ev();
+Name_Map name_map_dd5030[] = {
+ NSPAIR(_ZN6dd5030C1Ev),
+ NSPAIR(_ZN6dd5030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+static Base_Class bases_dd5030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, 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 _ZTI6dd5030[];
+extern void _ZN6dd50303barEv();
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY vtc_dd5030[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5030[0]),
+ (VTBL_ENTRY)&_ZN6dd50303barEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd5030[];
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc030__6dd5030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc030__6dd5030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_dd5030[] = {
+ {&(_ZTV6dd5030[4]), 4,10},
+ {&(_ZTV6dd5030[9]), 9,10},
+ {&(_tg__ZTV5cc030__6dd5030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc030__6dd5030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd5030[];
+extern VTBL_ENTRY _ZTV6dd5030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5030[];
+Class_Descriptor cd_dd5030 = { "dd5030", // class name
+ bases_dd5030, 3,
+ &(vtc_dd5030[0]), // expected_vtbl_contents
+ &(vtt_dd5030[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd5030),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5030),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5030),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 ee05030 : dd5030 {
+ int e;
+ ~ee05030(); // tgen
+ ee05030(); // tgen
+};
+//SIG(1 ee05030) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee05030 ::~ee05030(){ note_dtor("ee05030", this);} // tgen
+ee05030 ::ee05030(){ note_ctor("ee05030", this);} // tgen
+
+static void Test_ee05030()
+{
+ extern Class_Descriptor cd_ee05030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee05030, buf);
+ ee05030 *dp, &lv = *(dp=new (buf) ee05030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee05030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*), ABISELECT(32,24), "ee05030");
+ check_base_class_offset(lv, (bb30*)(cc030*), ABISELECT(16,12), "ee05030");
+ check_base_class_offset(lv, (cc030*)(dd5030*), ABISELECT(16,12), "ee05030");
+ check_base_class_offset(lv, (dd5030*), 0, "ee05030");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05030.e");
+ test_class_info(&lv, &cd_ee05030);
+ dp->~ee05030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05030(Test_ee05030, "ee05030", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee05030C1Ev();
+extern void _ZN7ee05030D1Ev();
+Name_Map name_map_ee05030[] = {
+ NSPAIR(_ZN7ee05030C1Ev),
+ NSPAIR(_ZN7ee05030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+extern Class_Descriptor cd_dd5030;
+extern VTBL_ENTRY _ZTI6dd5030[];
+extern VTBL_ENTRY _ZTV6dd5030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5030[];
+static Base_Class bases_ee05030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5030, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05030[];
+extern void _ZN6dd50303barEv();
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY vtc_ee05030[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05030[0]),
+ (VTBL_ENTRY)&_ZN6dd50303barEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee05030[];
+extern void _ZN6dd50303barEv();
+static VTBL_ENTRY _tg__ZTV6dd5030__7ee05030[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5030[0]),
+ (VTBL_ENTRY)&_ZN6dd50303barEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc030__6dd5030__7ee05030[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc030__7ee05030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc030__7ee05030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee05030[] = {
+ {&(_ZTV7ee05030[4]), 4,10},
+ {&(_tg__ZTV6dd5030__7ee05030[4]), 4,5},
+ {&(_tg__ZTV5cc030__6dd5030__7ee05030[4]), 4,5},
+ {&(_ZTV7ee05030[9]), 9,10},
+ {&(_tg__ZTV5cc030__7ee05030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc030__7ee05030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee05030[];
+extern VTBL_ENTRY _ZTV7ee05030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05030[];
+Class_Descriptor cd_ee05030 = { "ee05030", // class name
+ bases_ee05030, 4,
+ &(vtc_ee05030[0]), // expected_vtbl_contents
+ &(vtt_ee05030[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee05030),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05030),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05030),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee15030 : virtual dd5030 {
+ int e;
+ ~ee15030(); // tgen
+ ee15030(); // tgen
+};
+//SIG(1 ee15030) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee15030 ::~ee15030(){ note_dtor("ee15030", this);} // tgen
+ee15030 ::ee15030(){ note_ctor("ee15030", this);} // tgen
+
+static void Test_ee15030()
+{
+ extern Class_Descriptor cd_ee15030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee15030, buf);
+ ee15030 *dp, &lv = *(dp=new (buf) ee15030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee15030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*), ABISELECT(48,28), "ee15030");
+ check_base_class_offset(lv, (bb30*)(cc030*), ABISELECT(32,16), "ee15030");
+ check_base_class_offset(lv, (cc030*)(dd5030*), ABISELECT(32,16), "ee15030");
+ check_base_class_offset(lv, (dd5030*), ABISELECT(16,8), "ee15030");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15030.e");
+ test_class_info(&lv, &cd_ee15030);
+ dp->~ee15030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15030(Test_ee15030, "ee15030", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee15030C1Ev();
+extern void _ZN7ee15030D1Ev();
+Name_Map name_map_ee15030[] = {
+ NSPAIR(_ZN7ee15030C1Ev),
+ NSPAIR(_ZN7ee15030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+extern Class_Descriptor cd_dd5030;
+extern VTBL_ENTRY _ZTI6dd5030[];
+extern VTBL_ENTRY _ZTV6dd5030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5030[];
+static Base_Class bases_ee15030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(48,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5030, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee15030[];
+extern void _ZN6dd50303barEv();
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY vtc_ee15030[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15030[0]),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15030[0]),
+ (VTBL_ENTRY)&_ZN6dd50303barEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee15030[];
+extern void _ZN6dd50303barEv();
+static VTBL_ENTRY _tg__ZTV6dd5030__7ee15030[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5030[0]),
+ (VTBL_ENTRY)&_ZN6dd50303barEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc030__6dd5030__7ee15030[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc030__7ee15030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc030__7ee15030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee15030[] = {
+ {&(_ZTV7ee15030[5]), 5,16},
+ {&(_ZTV7ee15030[10]), 10,16},
+ {&(_ZTV7ee15030[15]), 15,16},
+ {&(_tg__ZTV6dd5030__7ee15030[4]), 4,5},
+ {&(_tg__ZTV5cc030__6dd5030__7ee15030[4]), 4,5},
+ {&(_tg__ZTV5cc030__7ee15030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc030__7ee15030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee15030[];
+extern VTBL_ENTRY _ZTV7ee15030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15030[];
+Class_Descriptor cd_ee15030 = { "ee15030", // class name
+ bases_ee15030, 4,
+ &(vtc_ee15030[0]), // expected_vtbl_contents
+ &(vtt_ee15030[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee15030),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15030),16, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15030),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25030 : dd5030 {
+ int e;
+ virtual void foo(); // _ZN7ee250303fooEv
+ ~ee25030(); // tgen
+ ee25030(); // tgen
+};
+//SIG(1 ee25030) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee25030 ::foo(){vfunc_called(this, "_ZN7ee250303fooEv");}
+ee25030 ::~ee25030(){ note_dtor("ee25030", this);} // tgen
+ee25030 ::ee25030(){ note_ctor("ee25030", this);} // tgen
+
+static void Test_ee25030()
+{
+ extern Class_Descriptor cd_ee25030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee25030, buf);
+ ee25030 *dp, &lv = *(dp=new (buf) ee25030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee25030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*), ABISELECT(32,24), "ee25030");
+ check_base_class_offset(lv, (bb30*)(cc030*), ABISELECT(16,12), "ee25030");
+ check_base_class_offset(lv, (cc030*)(dd5030*), ABISELECT(16,12), "ee25030");
+ check_base_class_offset(lv, (dd5030*), 0, "ee25030");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25030.e");
+ test_class_info(&lv, &cd_ee25030);
+ dp->~ee25030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25030(Test_ee25030, "ee25030", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee25030C1Ev();
+extern void _ZN7ee25030D1Ev();
+Name_Map name_map_ee25030[] = {
+ NSPAIR(_ZN7ee25030C1Ev),
+ NSPAIR(_ZN7ee25030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+extern Class_Descriptor cd_dd5030;
+extern VTBL_ENTRY _ZTI6dd5030[];
+extern VTBL_ENTRY _ZTV6dd5030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5030[];
+static Base_Class bases_ee25030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5030, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25030[];
+extern void _ZN6dd50303barEv();
+extern void _ZN7ee250303fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee250303fooEv,_ZTv0_n16_N7ee250303fooEv)();
+extern void ABISELECT(_ZThn16_N7ee250303fooEv,_ZThn12_N7ee250303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25030[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25030[0]),
+ (VTBL_ENTRY)&_ZN6dd50303barEv,
+ (VTBL_ENTRY)&_ZN7ee250303fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25030[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee250303fooEv,_ZTv0_n16_N7ee250303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee25030[];
+extern void _ZN6dd50303barEv();
+static VTBL_ENTRY _tg__ZTV6dd5030__7ee25030[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5030[0]),
+ (VTBL_ENTRY)&_ZN6dd50303barEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc030__6dd5030__7ee25030[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc030__7ee25030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc030__7ee25030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee25030[] = {
+ {&(_ZTV7ee25030[4]), 4,11},
+ {&(_tg__ZTV6dd5030__7ee25030[4]), 4,5},
+ {&(_tg__ZTV5cc030__6dd5030__7ee25030[4]), 4,5},
+ {&(_ZTV7ee25030[10]), 10,11},
+ {&(_tg__ZTV5cc030__7ee25030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc030__7ee25030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee25030[];
+extern VTBL_ENTRY _ZTV7ee25030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25030[];
+static VTBL_ENTRY alt_thunk_names21[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee250303fooEv,_ZTv0_n16_N7ee250303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee250303fooEv,_ZThn12_N7ee250303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25030 = { "ee25030", // class name
+ bases_ee25030, 4,
+ &(vtc_ee25030[0]), // expected_vtbl_contents
+ &(vtt_ee25030[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee25030),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25030),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25030),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names21,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35030 : virtual dd5030 {
+ int e;
+ virtual void foo(); // _ZN7ee350303fooEv
+ ~ee35030(); // tgen
+ ee35030(); // tgen
+};
+//SIG(1 ee35030) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee35030 ::foo(){vfunc_called(this, "_ZN7ee350303fooEv");}
+ee35030 ::~ee35030(){ note_dtor("ee35030", this);} // tgen
+ee35030 ::ee35030(){ note_ctor("ee35030", this);} // tgen
+
+static void Test_ee35030()
+{
+ extern Class_Descriptor cd_ee35030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee35030, buf);
+ ee35030 *dp, &lv = *(dp=new (buf) ee35030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee35030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*), ABISELECT(48,28), "ee35030");
+ check_base_class_offset(lv, (bb30*)(cc030*), ABISELECT(32,16), "ee35030");
+ check_base_class_offset(lv, (cc030*)(dd5030*), ABISELECT(32,16), "ee35030");
+ check_base_class_offset(lv, (dd5030*), ABISELECT(16,8), "ee35030");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35030.e");
+ test_class_info(&lv, &cd_ee35030);
+ dp->~ee35030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35030(Test_ee35030, "ee35030", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee35030C1Ev();
+extern void _ZN7ee35030D1Ev();
+Name_Map name_map_ee35030[] = {
+ NSPAIR(_ZN7ee35030C1Ev),
+ NSPAIR(_ZN7ee35030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+extern Class_Descriptor cd_dd5030;
+extern VTBL_ENTRY _ZTI6dd5030[];
+extern VTBL_ENTRY _ZTV6dd5030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5030[];
+static Base_Class bases_ee35030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(48,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5030, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee35030[];
+extern void _ZN7ee350303fooEv();
+extern void _ZN6dd50303barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee350303fooEv,_ZTv0_n16_N7ee350303fooEv)();
+extern void ABISELECT(_ZThn32_N7ee350303fooEv,_ZThn16_N7ee350303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35030[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35030[0]),
+ (VTBL_ENTRY)&_ZN7ee350303fooEv,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35030[0]),
+ (VTBL_ENTRY)&_ZN6dd50303barEv,
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35030[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee350303fooEv,_ZTv0_n16_N7ee350303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee35030[];
+extern void _ZN6dd50303barEv();
+static VTBL_ENTRY _tg__ZTV6dd5030__7ee35030[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5030[0]),
+ (VTBL_ENTRY)&_ZN6dd50303barEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc030__6dd5030__7ee35030[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc030__7ee35030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc030__7ee35030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee35030[] = {
+ {&(_ZTV7ee35030[5]), 5,17},
+ {&(_ZTV7ee35030[11]), 11,17},
+ {&(_ZTV7ee35030[16]), 16,17},
+ {&(_tg__ZTV6dd5030__7ee35030[4]), 4,5},
+ {&(_tg__ZTV5cc030__6dd5030__7ee35030[4]), 4,5},
+ {&(_tg__ZTV5cc030__7ee35030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc030__7ee35030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee35030[];
+extern VTBL_ENTRY _ZTV7ee35030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35030[];
+static VTBL_ENTRY alt_thunk_names22[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee350303fooEv,_ZTv0_n16_N7ee350303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee350303fooEv,_ZThn16_N7ee350303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35030 = { "ee35030", // class name
+ bases_ee35030, 4,
+ &(vtc_ee35030[0]), // expected_vtbl_contents
+ &(vtt_ee35030[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee35030),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35030),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35030),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names22,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45030 : dd5030 {
+ int e;
+ virtual void bar(); // _ZN7ee450303barEv
+ ~ee45030(); // tgen
+ ee45030(); // tgen
+};
+//SIG(1 ee45030) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee45030 ::bar(){vfunc_called(this, "_ZN7ee450303barEv");}
+ee45030 ::~ee45030(){ note_dtor("ee45030", this);} // tgen
+ee45030 ::ee45030(){ note_ctor("ee45030", this);} // tgen
+
+static void Test_ee45030()
+{
+ extern Class_Descriptor cd_ee45030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee45030, buf);
+ ee45030 *dp, &lv = *(dp=new (buf) ee45030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee45030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*), ABISELECT(32,24), "ee45030");
+ check_base_class_offset(lv, (bb30*)(cc030*), ABISELECT(16,12), "ee45030");
+ check_base_class_offset(lv, (cc030*)(dd5030*), ABISELECT(16,12), "ee45030");
+ check_base_class_offset(lv, (dd5030*), 0, "ee45030");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45030.e");
+ test_class_info(&lv, &cd_ee45030);
+ dp->~ee45030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45030(Test_ee45030, "ee45030", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee45030C1Ev();
+extern void _ZN7ee45030D1Ev();
+Name_Map name_map_ee45030[] = {
+ NSPAIR(_ZN7ee45030C1Ev),
+ NSPAIR(_ZN7ee45030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+extern Class_Descriptor cd_dd5030;
+extern VTBL_ENTRY _ZTI6dd5030[];
+extern VTBL_ENTRY _ZTV6dd5030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5030[];
+static Base_Class bases_ee45030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5030, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45030[];
+extern void _ZN7ee450303barEv();
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY vtc_ee45030[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45030[0]),
+ (VTBL_ENTRY)&_ZN7ee450303barEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee45030[];
+extern void _ZN6dd50303barEv();
+static VTBL_ENTRY _tg__ZTV6dd5030__7ee45030[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5030[0]),
+ (VTBL_ENTRY)&_ZN6dd50303barEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc030__6dd5030__7ee45030[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc030__7ee45030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc030__7ee45030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee45030[] = {
+ {&(_ZTV7ee45030[4]), 4,10},
+ {&(_tg__ZTV6dd5030__7ee45030[4]), 4,5},
+ {&(_tg__ZTV5cc030__6dd5030__7ee45030[4]), 4,5},
+ {&(_ZTV7ee45030[9]), 9,10},
+ {&(_tg__ZTV5cc030__7ee45030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc030__7ee45030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee45030[];
+extern VTBL_ENTRY _ZTV7ee45030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45030[];
+Class_Descriptor cd_ee45030 = { "ee45030", // class name
+ bases_ee45030, 4,
+ &(vtc_ee45030[0]), // expected_vtbl_contents
+ &(vtt_ee45030[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee45030),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45030),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45030),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55030 : virtual dd5030 {
+ int e;
+ virtual void bar(); // _ZN7ee550303barEv
+ ~ee55030(); // tgen
+ ee55030(); // tgen
+};
+//SIG(1 ee55030) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee55030 ::bar(){vfunc_called(this, "_ZN7ee550303barEv");}
+ee55030 ::~ee55030(){ note_dtor("ee55030", this);} // tgen
+ee55030 ::ee55030(){ note_ctor("ee55030", this);} // tgen
+
+static void Test_ee55030()
+{
+ extern Class_Descriptor cd_ee55030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee55030, buf);
+ ee55030 *dp, &lv = *(dp=new (buf) ee55030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee55030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*), ABISELECT(48,28), "ee55030");
+ check_base_class_offset(lv, (bb30*)(cc030*), ABISELECT(32,16), "ee55030");
+ check_base_class_offset(lv, (cc030*)(dd5030*), ABISELECT(32,16), "ee55030");
+ check_base_class_offset(lv, (dd5030*), ABISELECT(16,8), "ee55030");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55030.e");
+ test_class_info(&lv, &cd_ee55030);
+ dp->~ee55030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55030(Test_ee55030, "ee55030", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee55030C1Ev();
+extern void _ZN7ee55030D1Ev();
+Name_Map name_map_ee55030[] = {
+ NSPAIR(_ZN7ee55030C1Ev),
+ NSPAIR(_ZN7ee55030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+extern Class_Descriptor cd_dd5030;
+extern VTBL_ENTRY _ZTI6dd5030[];
+extern VTBL_ENTRY _ZTV6dd5030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5030[];
+static Base_Class bases_ee55030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(48,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5030, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee55030[];
+extern void _ZN7ee550303barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee550303barEv,_ZTv0_n20_N7ee550303barEv)();
+extern void ABISELECT(_ZThn16_N7ee550303barEv,_ZThn8_N7ee550303barEv)() __attribute__((weak));
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY vtc_ee55030[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55030[0]),
+ (VTBL_ENTRY)&_ZN7ee550303barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55030[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee550303barEv,_ZTv0_n20_N7ee550303barEv),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee55030[];
+extern void _ZN6dd50303barEv();
+static VTBL_ENTRY _tg__ZTV6dd5030__7ee55030[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5030[0]),
+ (VTBL_ENTRY)&_ZN6dd50303barEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc030__6dd5030__7ee55030[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc030__7ee55030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc030__7ee55030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee55030[] = {
+ {&(_ZTV7ee55030[5]), 5,17},
+ {&(_ZTV7ee55030[11]), 11,17},
+ {&(_ZTV7ee55030[16]), 16,17},
+ {&(_tg__ZTV6dd5030__7ee55030[4]), 4,5},
+ {&(_tg__ZTV5cc030__6dd5030__7ee55030[4]), 4,5},
+ {&(_tg__ZTV5cc030__7ee55030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc030__7ee55030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee55030[];
+extern VTBL_ENTRY _ZTV7ee55030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55030[];
+static VTBL_ENTRY alt_thunk_names23[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee550303barEv,_ZTv0_n20_N7ee550303barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee550303barEv,_ZThn8_N7ee550303barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55030 = { "ee55030", // class name
+ bases_ee55030, 4,
+ &(vtc_ee55030[0]), // expected_vtbl_contents
+ &(vtt_ee55030[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee55030),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55030),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55030),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names23,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65030 : dd5030 {
+ int e;
+ virtual void foo(); // _ZN7ee650303fooEv
+ virtual void bar(); // _ZN7ee650303barEv
+ ~ee65030(); // tgen
+ ee65030(); // tgen
+};
+//SIG(1 ee65030) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65030 ::foo(){vfunc_called(this, "_ZN7ee650303fooEv");}
+void ee65030 ::bar(){vfunc_called(this, "_ZN7ee650303barEv");}
+ee65030 ::~ee65030(){ note_dtor("ee65030", this);} // tgen
+ee65030 ::ee65030(){ note_ctor("ee65030", this);} // tgen
+
+static void Test_ee65030()
+{
+ extern Class_Descriptor cd_ee65030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee65030, buf);
+ ee65030 *dp, &lv = *(dp=new (buf) ee65030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee65030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*), ABISELECT(32,24), "ee65030");
+ check_base_class_offset(lv, (bb30*)(cc030*), ABISELECT(16,12), "ee65030");
+ check_base_class_offset(lv, (cc030*)(dd5030*), ABISELECT(16,12), "ee65030");
+ check_base_class_offset(lv, (dd5030*), 0, "ee65030");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65030.e");
+ test_class_info(&lv, &cd_ee65030);
+ dp->~ee65030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65030(Test_ee65030, "ee65030", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee65030C1Ev();
+extern void _ZN7ee65030D1Ev();
+Name_Map name_map_ee65030[] = {
+ NSPAIR(_ZN7ee65030C1Ev),
+ NSPAIR(_ZN7ee65030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+extern Class_Descriptor cd_dd5030;
+extern VTBL_ENTRY _ZTI6dd5030[];
+extern VTBL_ENTRY _ZTV6dd5030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5030[];
+static Base_Class bases_ee65030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5030, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65030[];
+extern void _ZN7ee650303barEv();
+extern void _ZN7ee650303fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee650303fooEv,_ZTv0_n16_N7ee650303fooEv)();
+extern void ABISELECT(_ZThn16_N7ee650303fooEv,_ZThn12_N7ee650303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65030[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65030[0]),
+ (VTBL_ENTRY)&_ZN7ee650303barEv,
+ (VTBL_ENTRY)&_ZN7ee650303fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65030[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee650303fooEv,_ZTv0_n16_N7ee650303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee65030[];
+extern void _ZN6dd50303barEv();
+static VTBL_ENTRY _tg__ZTV6dd5030__7ee65030[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5030[0]),
+ (VTBL_ENTRY)&_ZN6dd50303barEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc030__6dd5030__7ee65030[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc030__7ee65030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc030__7ee65030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee65030[] = {
+ {&(_ZTV7ee65030[4]), 4,11},
+ {&(_tg__ZTV6dd5030__7ee65030[4]), 4,5},
+ {&(_tg__ZTV5cc030__6dd5030__7ee65030[4]), 4,5},
+ {&(_ZTV7ee65030[10]), 10,11},
+ {&(_tg__ZTV5cc030__7ee65030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc030__7ee65030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee65030[];
+extern VTBL_ENTRY _ZTV7ee65030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65030[];
+static VTBL_ENTRY alt_thunk_names24[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee650303fooEv,_ZTv0_n16_N7ee650303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee650303fooEv,_ZThn12_N7ee650303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65030 = { "ee65030", // class name
+ bases_ee65030, 4,
+ &(vtc_ee65030[0]), // expected_vtbl_contents
+ &(vtt_ee65030[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee65030),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65030),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65030),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names24,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75030 : virtual dd5030 {
+ int e;
+ virtual void foo(); // _ZN7ee750303fooEv
+ virtual void bar(); // _ZN7ee750303barEv
+ ~ee75030(); // tgen
+ ee75030(); // tgen
+};
+//SIG(1 ee75030) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75030 ::foo(){vfunc_called(this, "_ZN7ee750303fooEv");}
+void ee75030 ::bar(){vfunc_called(this, "_ZN7ee750303barEv");}
+ee75030 ::~ee75030(){ note_dtor("ee75030", this);} // tgen
+ee75030 ::ee75030(){ note_ctor("ee75030", this);} // tgen
+
+static void Test_ee75030()
+{
+ extern Class_Descriptor cd_ee75030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee75030, buf);
+ ee75030 *dp, &lv = *(dp=new (buf) ee75030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee75030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*), ABISELECT(48,28), "ee75030");
+ check_base_class_offset(lv, (bb30*)(cc030*), ABISELECT(32,16), "ee75030");
+ check_base_class_offset(lv, (cc030*)(dd5030*), ABISELECT(32,16), "ee75030");
+ check_base_class_offset(lv, (dd5030*), ABISELECT(16,8), "ee75030");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75030.e");
+ test_class_info(&lv, &cd_ee75030);
+ dp->~ee75030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75030(Test_ee75030, "ee75030", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee75030C1Ev();
+extern void _ZN7ee75030D1Ev();
+Name_Map name_map_ee75030[] = {
+ NSPAIR(_ZN7ee75030C1Ev),
+ NSPAIR(_ZN7ee75030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+extern Class_Descriptor cd_dd5030;
+extern VTBL_ENTRY _ZTI6dd5030[];
+extern VTBL_ENTRY _ZTV6dd5030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5030[];
+static Base_Class bases_ee75030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(48,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5030, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee75030[];
+extern void _ZN7ee750303fooEv();
+extern void _ZN7ee750303barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee750303barEv,_ZTv0_n20_N7ee750303barEv)();
+extern void ABISELECT(_ZThn16_N7ee750303barEv,_ZThn8_N7ee750303barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee750303fooEv,_ZTv0_n16_N7ee750303fooEv)();
+extern void ABISELECT(_ZThn32_N7ee750303fooEv,_ZThn16_N7ee750303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75030[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75030[0]),
+ (VTBL_ENTRY)&_ZN7ee750303fooEv,
+ (VTBL_ENTRY)&_ZN7ee750303barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75030[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee750303barEv,_ZTv0_n20_N7ee750303barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75030[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee750303fooEv,_ZTv0_n16_N7ee750303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee75030[];
+extern void _ZN6dd50303barEv();
+static VTBL_ENTRY _tg__ZTV6dd5030__7ee75030[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5030[0]),
+ (VTBL_ENTRY)&_ZN6dd50303barEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc030__6dd5030__7ee75030[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc030__7ee75030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc030__7ee75030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee75030[] = {
+ {&(_ZTV7ee75030[5]), 5,18},
+ {&(_ZTV7ee75030[12]), 12,18},
+ {&(_ZTV7ee75030[17]), 17,18},
+ {&(_tg__ZTV6dd5030__7ee75030[4]), 4,5},
+ {&(_tg__ZTV5cc030__6dd5030__7ee75030[4]), 4,5},
+ {&(_tg__ZTV5cc030__7ee75030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc030__7ee75030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee75030[];
+extern VTBL_ENTRY _ZTV7ee75030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75030[];
+static VTBL_ENTRY alt_thunk_names25[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee750303fooEv,_ZTv0_n16_N7ee750303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee750303fooEv,_ZThn16_N7ee750303fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee750303barEv,_ZTv0_n20_N7ee750303barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee750303barEv,_ZThn8_N7ee750303barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75030 = { "ee75030", // class name
+ bases_ee75030, 4,
+ &(vtc_ee75030[0]), // expected_vtbl_contents
+ &(vtt_ee75030[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee75030),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75030),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75030),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names25,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6030 : cc030 {
+ int d;
+ virtual void bar(); // _ZN6dd60303barEv
+ virtual void foo(); // _ZN6dd60303fooEv
+ ~dd6030(); // tgen
+ dd6030(); // tgen
+};
+//SIG(-1 dd6030) C1{ BC2{ BC3{ VBC4{ Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void dd6030 ::bar(){vfunc_called(this, "_ZN6dd60303barEv");}
+void dd6030 ::foo(){vfunc_called(this, "_ZN6dd60303fooEv");}
+dd6030 ::~dd6030(){ note_dtor("dd6030", this);} // tgen
+dd6030 ::dd6030(){ note_ctor("dd6030", this);} // tgen
+
+static void Test_dd6030()
+{
+ extern Class_Descriptor cd_dd6030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd6030, buf);
+ dd6030 *dp, &lv = *(dp=new (buf) dd6030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd6030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*), ABISELECT(20,16), "dd6030");
+ check_base_class_offset(lv, (bb30*)(cc030*), 0, "dd6030");
+ check_base_class_offset(lv, (cc030*), 0, "dd6030");
+ check_field_offset(lv, d, ABISELECT(16,12), "dd6030.d");
+ test_class_info(&lv, &cd_dd6030);
+ dp->~dd6030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6030(Test_dd6030, "dd6030", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd6030C1Ev();
+extern void _ZN6dd6030D1Ev();
+Name_Map name_map_dd6030[] = {
+ NSPAIR(_ZN6dd6030C1Ev),
+ NSPAIR(_ZN6dd6030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+static Base_Class bases_dd6030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd6030[];
+extern void _ZN6dd60303fooEv();
+extern void _ZN6dd60303barEv();
+static VTBL_ENTRY vtc_dd6030[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6030[0]),
+ (VTBL_ENTRY)&_ZN6dd60303fooEv,
+ (VTBL_ENTRY)&_ZN6dd60303barEv,
+};
+extern VTBL_ENTRY _ZTV6dd6030[];
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc030__6dd6030[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc030__6dd6030[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_dd6030[] = {
+ {&(_ZTV6dd6030[3]), 3,5},
+ {&(_tg__ZTV5cc030__6dd6030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc030__6dd6030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd6030[];
+extern VTBL_ENTRY _ZTV6dd6030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6030[];
+Class_Descriptor cd_dd6030 = { "dd6030", // class name
+ bases_dd6030, 3,
+ &(vtc_dd6030[0]), // expected_vtbl_contents
+ &(vtt_dd6030[0]), // expected_vtt_contents
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd6030),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6030),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd6030),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 ee06030 : dd6030 {
+ int e;
+ ~ee06030(); // tgen
+ ee06030(); // tgen
+};
+//SIG(1 ee06030) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee06030 ::~ee06030(){ note_dtor("ee06030", this);} // tgen
+ee06030 ::ee06030(){ note_ctor("ee06030", this);} // tgen
+
+static void Test_ee06030()
+{
+ extern Class_Descriptor cd_ee06030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee06030, buf);
+ ee06030 *dp, &lv = *(dp=new (buf) ee06030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee06030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*)(dd6030*), ABISELECT(24,20), "ee06030");
+ check_base_class_offset(lv, (bb30*)(cc030*)(dd6030*), 0, "ee06030");
+ check_base_class_offset(lv, (cc030*)(dd6030*), 0, "ee06030");
+ check_base_class_offset(lv, (dd6030*), 0, "ee06030");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee06030.e");
+ test_class_info(&lv, &cd_ee06030);
+ dp->~ee06030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06030(Test_ee06030, "ee06030", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee06030C1Ev();
+extern void _ZN7ee06030D1Ev();
+Name_Map name_map_ee06030[] = {
+ NSPAIR(_ZN7ee06030C1Ev),
+ NSPAIR(_ZN7ee06030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+extern Class_Descriptor cd_dd6030;
+extern VTBL_ENTRY _ZTI6dd6030[];
+extern VTBL_ENTRY _ZTV6dd6030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6030[];
+static Base_Class bases_ee06030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6030, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06030[];
+extern void _ZN6dd60303fooEv();
+extern void _ZN6dd60303barEv();
+static VTBL_ENTRY vtc_ee06030[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06030[0]),
+ (VTBL_ENTRY)&_ZN6dd60303fooEv,
+ (VTBL_ENTRY)&_ZN6dd60303barEv,
+};
+extern VTBL_ENTRY _ZTV7ee06030[];
+extern void _ZN6dd60303fooEv();
+extern void _ZN6dd60303barEv();
+static VTBL_ENTRY _tg__ZTV6dd6030__7ee06030[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6030[0]),
+ (VTBL_ENTRY)&_ZN6dd60303fooEv,
+ (VTBL_ENTRY)&_ZN6dd60303barEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc0306dd6030__7ee06030[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc0306dd6030__7ee06030[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee06030[] = {
+ {&(_ZTV7ee06030[3]), 3,5},
+ {&(_tg__ZTV6dd6030__7ee06030[3]), 3,5},
+ {&(_tg__ZTV5cc0306dd6030__7ee06030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc0306dd6030__7ee06030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee06030[];
+extern VTBL_ENTRY _ZTV7ee06030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee06030[];
+Class_Descriptor cd_ee06030 = { "ee06030", // class name
+ bases_ee06030, 4,
+ &(vtc_ee06030[0]), // expected_vtbl_contents
+ &(vtt_ee06030[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee06030),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06030),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee06030),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee16030 : virtual dd6030 {
+ int e;
+ ~ee16030(); // tgen
+ ee16030(); // tgen
+};
+//SIG(1 ee16030) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee16030 ::~ee16030(){ note_dtor("ee16030", this);} // tgen
+ee16030 ::ee16030(){ note_ctor("ee16030", this);} // tgen
+
+static void Test_ee16030()
+{
+ extern Class_Descriptor cd_ee16030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee16030, buf);
+ ee16030 *dp, &lv = *(dp=new (buf) ee16030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee16030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*)(dd6030*), ABISELECT(36,24), "ee16030");
+ check_base_class_offset(lv, (bb30*)(cc030*)(dd6030*), ABISELECT(16,8), "ee16030");
+ check_base_class_offset(lv, (cc030*)(dd6030*), ABISELECT(16,8), "ee16030");
+ check_base_class_offset(lv, (dd6030*), ABISELECT(16,8), "ee16030");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16030.e");
+ test_class_info(&lv, &cd_ee16030);
+ dp->~ee16030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16030(Test_ee16030, "ee16030", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee16030C1Ev();
+extern void _ZN7ee16030D1Ev();
+Name_Map name_map_ee16030[] = {
+ NSPAIR(_ZN7ee16030C1Ev),
+ NSPAIR(_ZN7ee16030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+extern Class_Descriptor cd_dd6030;
+extern VTBL_ENTRY _ZTI6dd6030[];
+extern VTBL_ENTRY _ZTV6dd6030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6030[];
+static Base_Class bases_ee16030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6030, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee16030[];
+extern void _ZN6dd60303fooEv();
+extern void _ZN6dd60303barEv();
+static VTBL_ENTRY vtc_ee16030[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16030[0]),
+ 0,
+ 0,
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16030[0]),
+ (VTBL_ENTRY)&_ZN6dd60303fooEv,
+ (VTBL_ENTRY)&_ZN6dd60303barEv,
+};
+extern VTBL_ENTRY _ZTV7ee16030[];
+extern void _ZN6dd60303fooEv();
+extern void _ZN6dd60303barEv();
+static VTBL_ENTRY _tg__ZTV6dd6030__7ee16030[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6030[0]),
+ (VTBL_ENTRY)&_ZN6dd60303fooEv,
+ (VTBL_ENTRY)&_ZN6dd60303barEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc0306dd6030__7ee16030[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc0306dd6030__7ee16030[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee16030[] = {
+ {&(_ZTV7ee16030[4]), 4,11},
+ {&(_ZTV7ee16030[9]), 9,11},
+ {&(_tg__ZTV6dd6030__7ee16030[3]), 3,5},
+ {&(_tg__ZTV5cc0306dd6030__7ee16030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc0306dd6030__7ee16030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee16030[];
+extern VTBL_ENTRY _ZTV7ee16030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16030[];
+Class_Descriptor cd_ee16030 = { "ee16030", // class name
+ bases_ee16030, 4,
+ &(vtc_ee16030[0]), // expected_vtbl_contents
+ &(vtt_ee16030[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee16030),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16030),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16030),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee26030 : dd6030 {
+ int e;
+ virtual void foo(); // _ZN7ee260303fooEv
+ ~ee26030(); // tgen
+ ee26030(); // tgen
+};
+//SIG(1 ee26030) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26030 ::foo(){vfunc_called(this, "_ZN7ee260303fooEv");}
+ee26030 ::~ee26030(){ note_dtor("ee26030", this);} // tgen
+ee26030 ::ee26030(){ note_ctor("ee26030", this);} // tgen
+
+static void Test_ee26030()
+{
+ extern Class_Descriptor cd_ee26030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee26030, buf);
+ ee26030 *dp, &lv = *(dp=new (buf) ee26030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee26030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*)(dd6030*), ABISELECT(24,20), "ee26030");
+ check_base_class_offset(lv, (bb30*)(cc030*)(dd6030*), 0, "ee26030");
+ check_base_class_offset(lv, (cc030*)(dd6030*), 0, "ee26030");
+ check_base_class_offset(lv, (dd6030*), 0, "ee26030");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee26030.e");
+ test_class_info(&lv, &cd_ee26030);
+ dp->~ee26030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26030(Test_ee26030, "ee26030", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee26030C1Ev();
+extern void _ZN7ee26030D1Ev();
+Name_Map name_map_ee26030[] = {
+ NSPAIR(_ZN7ee26030C1Ev),
+ NSPAIR(_ZN7ee26030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+extern Class_Descriptor cd_dd6030;
+extern VTBL_ENTRY _ZTI6dd6030[];
+extern VTBL_ENTRY _ZTV6dd6030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6030[];
+static Base_Class bases_ee26030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6030, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26030[];
+extern void _ZN7ee260303fooEv();
+extern void _ZN6dd60303barEv();
+static VTBL_ENTRY vtc_ee26030[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26030[0]),
+ (VTBL_ENTRY)&_ZN7ee260303fooEv,
+ (VTBL_ENTRY)&_ZN6dd60303barEv,
+};
+extern VTBL_ENTRY _ZTV7ee26030[];
+extern void _ZN6dd60303fooEv();
+extern void _ZN6dd60303barEv();
+static VTBL_ENTRY _tg__ZTV6dd6030__7ee26030[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6030[0]),
+ (VTBL_ENTRY)&_ZN6dd60303fooEv,
+ (VTBL_ENTRY)&_ZN6dd60303barEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc0306dd6030__7ee26030[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc0306dd6030__7ee26030[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee26030[] = {
+ {&(_ZTV7ee26030[3]), 3,5},
+ {&(_tg__ZTV6dd6030__7ee26030[3]), 3,5},
+ {&(_tg__ZTV5cc0306dd6030__7ee26030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc0306dd6030__7ee26030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee26030[];
+extern VTBL_ENTRY _ZTV7ee26030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee26030[];
+Class_Descriptor cd_ee26030 = { "ee26030", // class name
+ bases_ee26030, 4,
+ &(vtc_ee26030[0]), // expected_vtbl_contents
+ &(vtt_ee26030[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee26030),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26030),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee26030),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee36030 : virtual dd6030 {
+ int e;
+ virtual void foo(); // _ZN7ee360303fooEv
+ ~ee36030(); // tgen
+ ee36030(); // tgen
+};
+//SIG(1 ee36030) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36030 ::foo(){vfunc_called(this, "_ZN7ee360303fooEv");}
+ee36030 ::~ee36030(){ note_dtor("ee36030", this);} // tgen
+ee36030 ::ee36030(){ note_ctor("ee36030", this);} // tgen
+
+static void Test_ee36030()
+{
+ extern Class_Descriptor cd_ee36030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee36030, buf);
+ ee36030 *dp, &lv = *(dp=new (buf) ee36030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee36030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*)(dd6030*), ABISELECT(36,24), "ee36030");
+ check_base_class_offset(lv, (bb30*)(cc030*)(dd6030*), ABISELECT(16,8), "ee36030");
+ check_base_class_offset(lv, (cc030*)(dd6030*), ABISELECT(16,8), "ee36030");
+ check_base_class_offset(lv, (dd6030*), ABISELECT(16,8), "ee36030");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36030.e");
+ test_class_info(&lv, &cd_ee36030);
+ dp->~ee36030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36030(Test_ee36030, "ee36030", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee36030C1Ev();
+extern void _ZN7ee36030D1Ev();
+Name_Map name_map_ee36030[] = {
+ NSPAIR(_ZN7ee36030C1Ev),
+ NSPAIR(_ZN7ee36030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+extern Class_Descriptor cd_dd6030;
+extern VTBL_ENTRY _ZTI6dd6030[];
+extern VTBL_ENTRY _ZTV6dd6030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6030[];
+static Base_Class bases_ee36030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6030, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee36030[];
+extern void _ZN7ee360303fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee360303fooEv,_ZTv0_n16_N7ee360303fooEv)();
+extern void ABISELECT(_ZThn16_N7ee360303fooEv,_ZThn8_N7ee360303fooEv)() __attribute__((weak));
+extern void _ZN6dd60303barEv();
+static VTBL_ENTRY vtc_ee36030[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36030[0]),
+ (VTBL_ENTRY)&_ZN7ee360303fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36030[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee360303fooEv,_ZTv0_n16_N7ee360303fooEv),
+ (VTBL_ENTRY)&_ZN6dd60303barEv,
+};
+extern VTBL_ENTRY _ZTV7ee36030[];
+extern void _ZN6dd60303fooEv();
+extern void _ZN6dd60303barEv();
+static VTBL_ENTRY _tg__ZTV6dd6030__7ee36030[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6030[0]),
+ (VTBL_ENTRY)&_ZN6dd60303fooEv,
+ (VTBL_ENTRY)&_ZN6dd60303barEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc0306dd6030__7ee36030[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc0306dd6030__7ee36030[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee36030[] = {
+ {&(_ZTV7ee36030[4]), 4,12},
+ {&(_ZTV7ee36030[10]), 10,12},
+ {&(_tg__ZTV6dd6030__7ee36030[3]), 3,5},
+ {&(_tg__ZTV5cc0306dd6030__7ee36030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc0306dd6030__7ee36030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee36030[];
+extern VTBL_ENTRY _ZTV7ee36030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36030[];
+static VTBL_ENTRY alt_thunk_names26[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee360303fooEv,_ZTv0_n16_N7ee360303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee360303fooEv,_ZThn8_N7ee360303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36030 = { "ee36030", // class name
+ bases_ee36030, 4,
+ &(vtc_ee36030[0]), // expected_vtbl_contents
+ &(vtt_ee36030[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee36030),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36030),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36030),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names26,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46030 : dd6030 {
+ int e;
+ virtual void bar(); // _ZN7ee460303barEv
+ ~ee46030(); // tgen
+ ee46030(); // tgen
+};
+//SIG(1 ee46030) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46030 ::bar(){vfunc_called(this, "_ZN7ee460303barEv");}
+ee46030 ::~ee46030(){ note_dtor("ee46030", this);} // tgen
+ee46030 ::ee46030(){ note_ctor("ee46030", this);} // tgen
+
+static void Test_ee46030()
+{
+ extern Class_Descriptor cd_ee46030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee46030, buf);
+ ee46030 *dp, &lv = *(dp=new (buf) ee46030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee46030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*)(dd6030*), ABISELECT(24,20), "ee46030");
+ check_base_class_offset(lv, (bb30*)(cc030*)(dd6030*), 0, "ee46030");
+ check_base_class_offset(lv, (cc030*)(dd6030*), 0, "ee46030");
+ check_base_class_offset(lv, (dd6030*), 0, "ee46030");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee46030.e");
+ test_class_info(&lv, &cd_ee46030);
+ dp->~ee46030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46030(Test_ee46030, "ee46030", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee46030C1Ev();
+extern void _ZN7ee46030D1Ev();
+Name_Map name_map_ee46030[] = {
+ NSPAIR(_ZN7ee46030C1Ev),
+ NSPAIR(_ZN7ee46030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+extern Class_Descriptor cd_dd6030;
+extern VTBL_ENTRY _ZTI6dd6030[];
+extern VTBL_ENTRY _ZTV6dd6030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6030[];
+static Base_Class bases_ee46030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6030, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46030[];
+extern void _ZN6dd60303fooEv();
+extern void _ZN7ee460303barEv();
+static VTBL_ENTRY vtc_ee46030[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46030[0]),
+ (VTBL_ENTRY)&_ZN6dd60303fooEv,
+ (VTBL_ENTRY)&_ZN7ee460303barEv,
+};
+extern VTBL_ENTRY _ZTV7ee46030[];
+extern void _ZN6dd60303fooEv();
+extern void _ZN6dd60303barEv();
+static VTBL_ENTRY _tg__ZTV6dd6030__7ee46030[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6030[0]),
+ (VTBL_ENTRY)&_ZN6dd60303fooEv,
+ (VTBL_ENTRY)&_ZN6dd60303barEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc0306dd6030__7ee46030[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc0306dd6030__7ee46030[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee46030[] = {
+ {&(_ZTV7ee46030[3]), 3,5},
+ {&(_tg__ZTV6dd6030__7ee46030[3]), 3,5},
+ {&(_tg__ZTV5cc0306dd6030__7ee46030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc0306dd6030__7ee46030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee46030[];
+extern VTBL_ENTRY _ZTV7ee46030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee46030[];
+Class_Descriptor cd_ee46030 = { "ee46030", // class name
+ bases_ee46030, 4,
+ &(vtc_ee46030[0]), // expected_vtbl_contents
+ &(vtt_ee46030[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee46030),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46030),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee46030),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee56030 : virtual dd6030 {
+ int e;
+ virtual void bar(); // _ZN7ee560303barEv
+ ~ee56030(); // tgen
+ ee56030(); // tgen
+};
+//SIG(1 ee56030) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56030 ::bar(){vfunc_called(this, "_ZN7ee560303barEv");}
+ee56030 ::~ee56030(){ note_dtor("ee56030", this);} // tgen
+ee56030 ::ee56030(){ note_ctor("ee56030", this);} // tgen
+
+static void Test_ee56030()
+{
+ extern Class_Descriptor cd_ee56030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee56030, buf);
+ ee56030 *dp, &lv = *(dp=new (buf) ee56030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee56030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*)(dd6030*), ABISELECT(36,24), "ee56030");
+ check_base_class_offset(lv, (bb30*)(cc030*)(dd6030*), ABISELECT(16,8), "ee56030");
+ check_base_class_offset(lv, (cc030*)(dd6030*), ABISELECT(16,8), "ee56030");
+ check_base_class_offset(lv, (dd6030*), ABISELECT(16,8), "ee56030");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56030.e");
+ test_class_info(&lv, &cd_ee56030);
+ dp->~ee56030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56030(Test_ee56030, "ee56030", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee56030C1Ev();
+extern void _ZN7ee56030D1Ev();
+Name_Map name_map_ee56030[] = {
+ NSPAIR(_ZN7ee56030C1Ev),
+ NSPAIR(_ZN7ee56030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+extern Class_Descriptor cd_dd6030;
+extern VTBL_ENTRY _ZTI6dd6030[];
+extern VTBL_ENTRY _ZTV6dd6030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6030[];
+static Base_Class bases_ee56030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6030, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee56030[];
+extern void _ZN7ee560303barEv();
+extern void _ZN6dd60303fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee560303barEv,_ZTv0_n20_N7ee560303barEv)();
+extern void ABISELECT(_ZThn16_N7ee560303barEv,_ZThn8_N7ee560303barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56030[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56030[0]),
+ (VTBL_ENTRY)&_ZN7ee560303barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56030[0]),
+ (VTBL_ENTRY)&_ZN6dd60303fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee560303barEv,_ZTv0_n20_N7ee560303barEv),
+};
+extern VTBL_ENTRY _ZTV7ee56030[];
+extern void _ZN6dd60303fooEv();
+extern void _ZN6dd60303barEv();
+static VTBL_ENTRY _tg__ZTV6dd6030__7ee56030[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6030[0]),
+ (VTBL_ENTRY)&_ZN6dd60303fooEv,
+ (VTBL_ENTRY)&_ZN6dd60303barEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc0306dd6030__7ee56030[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc0306dd6030__7ee56030[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee56030[] = {
+ {&(_ZTV7ee56030[4]), 4,12},
+ {&(_ZTV7ee56030[10]), 10,12},
+ {&(_tg__ZTV6dd6030__7ee56030[3]), 3,5},
+ {&(_tg__ZTV5cc0306dd6030__7ee56030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc0306dd6030__7ee56030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee56030[];
+extern VTBL_ENTRY _ZTV7ee56030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56030[];
+static VTBL_ENTRY alt_thunk_names27[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee560303barEv,_ZTv0_n20_N7ee560303barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee560303barEv,_ZThn8_N7ee560303barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56030 = { "ee56030", // class name
+ bases_ee56030, 4,
+ &(vtc_ee56030[0]), // expected_vtbl_contents
+ &(vtt_ee56030[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee56030),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56030),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56030),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names27,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66030 : dd6030 {
+ int e;
+ virtual void foo(); // _ZN7ee660303fooEv
+ virtual void bar(); // _ZN7ee660303barEv
+ ~ee66030(); // tgen
+ ee66030(); // tgen
+};
+//SIG(1 ee66030) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66030 ::foo(){vfunc_called(this, "_ZN7ee660303fooEv");}
+void ee66030 ::bar(){vfunc_called(this, "_ZN7ee660303barEv");}
+ee66030 ::~ee66030(){ note_dtor("ee66030", this);} // tgen
+ee66030 ::ee66030(){ note_ctor("ee66030", this);} // tgen
+
+static void Test_ee66030()
+{
+ extern Class_Descriptor cd_ee66030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee66030, buf);
+ ee66030 *dp, &lv = *(dp=new (buf) ee66030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee66030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*)(dd6030*), ABISELECT(24,20), "ee66030");
+ check_base_class_offset(lv, (bb30*)(cc030*)(dd6030*), 0, "ee66030");
+ check_base_class_offset(lv, (cc030*)(dd6030*), 0, "ee66030");
+ check_base_class_offset(lv, (dd6030*), 0, "ee66030");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee66030.e");
+ test_class_info(&lv, &cd_ee66030);
+ dp->~ee66030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66030(Test_ee66030, "ee66030", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee66030C1Ev();
+extern void _ZN7ee66030D1Ev();
+Name_Map name_map_ee66030[] = {
+ NSPAIR(_ZN7ee66030C1Ev),
+ NSPAIR(_ZN7ee66030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+extern Class_Descriptor cd_dd6030;
+extern VTBL_ENTRY _ZTI6dd6030[];
+extern VTBL_ENTRY _ZTV6dd6030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6030[];
+static Base_Class bases_ee66030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6030, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66030[];
+extern void _ZN7ee660303fooEv();
+extern void _ZN7ee660303barEv();
+static VTBL_ENTRY vtc_ee66030[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66030[0]),
+ (VTBL_ENTRY)&_ZN7ee660303fooEv,
+ (VTBL_ENTRY)&_ZN7ee660303barEv,
+};
+extern VTBL_ENTRY _ZTV7ee66030[];
+extern void _ZN6dd60303fooEv();
+extern void _ZN6dd60303barEv();
+static VTBL_ENTRY _tg__ZTV6dd6030__7ee66030[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6030[0]),
+ (VTBL_ENTRY)&_ZN6dd60303fooEv,
+ (VTBL_ENTRY)&_ZN6dd60303barEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc0306dd6030__7ee66030[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc0306dd6030__7ee66030[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee66030[] = {
+ {&(_ZTV7ee66030[3]), 3,5},
+ {&(_tg__ZTV6dd6030__7ee66030[3]), 3,5},
+ {&(_tg__ZTV5cc0306dd6030__7ee66030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc0306dd6030__7ee66030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee66030[];
+extern VTBL_ENTRY _ZTV7ee66030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee66030[];
+Class_Descriptor cd_ee66030 = { "ee66030", // class name
+ bases_ee66030, 4,
+ &(vtc_ee66030[0]), // expected_vtbl_contents
+ &(vtt_ee66030[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee66030),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66030),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee66030),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee76030 : virtual dd6030 {
+ int e;
+ virtual void foo(); // _ZN7ee760303fooEv
+ virtual void bar(); // _ZN7ee760303barEv
+ ~ee76030(); // tgen
+ ee76030(); // tgen
+};
+//SIG(1 ee76030) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76030 ::foo(){vfunc_called(this, "_ZN7ee760303fooEv");}
+void ee76030 ::bar(){vfunc_called(this, "_ZN7ee760303barEv");}
+ee76030 ::~ee76030(){ note_dtor("ee76030", this);} // tgen
+ee76030 ::ee76030(){ note_ctor("ee76030", this);} // tgen
+
+static void Test_ee76030()
+{
+ extern Class_Descriptor cd_ee76030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee76030, buf);
+ ee76030 *dp, &lv = *(dp=new (buf) ee76030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee76030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*)(dd6030*), ABISELECT(36,24), "ee76030");
+ check_base_class_offset(lv, (bb30*)(cc030*)(dd6030*), ABISELECT(16,8), "ee76030");
+ check_base_class_offset(lv, (cc030*)(dd6030*), ABISELECT(16,8), "ee76030");
+ check_base_class_offset(lv, (dd6030*), ABISELECT(16,8), "ee76030");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76030.e");
+ test_class_info(&lv, &cd_ee76030);
+ dp->~ee76030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76030(Test_ee76030, "ee76030", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee76030C1Ev();
+extern void _ZN7ee76030D1Ev();
+Name_Map name_map_ee76030[] = {
+ NSPAIR(_ZN7ee76030C1Ev),
+ NSPAIR(_ZN7ee76030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+extern Class_Descriptor cd_dd6030;
+extern VTBL_ENTRY _ZTI6dd6030[];
+extern VTBL_ENTRY _ZTV6dd6030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6030[];
+static Base_Class bases_ee76030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6030, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee76030[];
+extern void _ZN7ee760303fooEv();
+extern void _ZN7ee760303barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee760303fooEv,_ZTv0_n16_N7ee760303fooEv)();
+extern void ABISELECT(_ZThn16_N7ee760303fooEv,_ZThn8_N7ee760303fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee760303barEv,_ZTv0_n20_N7ee760303barEv)();
+extern void ABISELECT(_ZThn16_N7ee760303barEv,_ZThn8_N7ee760303barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76030[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76030[0]),
+ (VTBL_ENTRY)&_ZN7ee760303fooEv,
+ (VTBL_ENTRY)&_ZN7ee760303barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76030[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee760303fooEv,_ZTv0_n16_N7ee760303fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee760303barEv,_ZTv0_n20_N7ee760303barEv),
+};
+extern VTBL_ENTRY _ZTV7ee76030[];
+extern void _ZN6dd60303fooEv();
+extern void _ZN6dd60303barEv();
+static VTBL_ENTRY _tg__ZTV6dd6030__7ee76030[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6030[0]),
+ (VTBL_ENTRY)&_ZN6dd60303fooEv,
+ (VTBL_ENTRY)&_ZN6dd60303barEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc0306dd6030__7ee76030[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc0306dd6030__7ee76030[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee76030[] = {
+ {&(_ZTV7ee76030[4]), 4,13},
+ {&(_ZTV7ee76030[11]), 11,13},
+ {&(_tg__ZTV6dd6030__7ee76030[3]), 3,5},
+ {&(_tg__ZTV5cc0306dd6030__7ee76030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc0306dd6030__7ee76030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee76030[];
+extern VTBL_ENTRY _ZTV7ee76030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76030[];
+static VTBL_ENTRY alt_thunk_names28[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee760303barEv,_ZTv0_n20_N7ee760303barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee760303barEv,_ZThn8_N7ee760303barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee760303fooEv,_ZTv0_n16_N7ee760303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee760303fooEv,_ZThn8_N7ee760303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76030 = { "ee76030", // class name
+ bases_ee76030, 4,
+ &(vtc_ee76030[0]), // expected_vtbl_contents
+ &(vtt_ee76030[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee76030),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76030),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76030),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names28,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7030 : virtual cc030 {
+ int d;
+ virtual void bar(); // _ZN6dd70303barEv
+ virtual void foo(); // _ZN6dd70303fooEv
+ ~dd7030(); // tgen
+ dd7030(); // tgen
+};
+//SIG(-1 dd7030) C1{ VBC2{ BC3{ VBC4{ Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void dd7030 ::bar(){vfunc_called(this, "_ZN6dd70303barEv");}
+void dd7030 ::foo(){vfunc_called(this, "_ZN6dd70303fooEv");}
+dd7030 ::~dd7030(){ note_dtor("dd7030", this);} // tgen
+dd7030 ::dd7030(){ note_ctor("dd7030", this);} // tgen
+
+static void Test_dd7030()
+{
+ extern Class_Descriptor cd_dd7030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd7030, buf);
+ dd7030 *dp, &lv = *(dp=new (buf) dd7030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd7030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*), ABISELECT(32,20), "dd7030");
+ check_base_class_offset(lv, (bb30*)(cc030*), ABISELECT(16,8), "dd7030");
+ check_base_class_offset(lv, (cc030*), ABISELECT(16,8), "dd7030");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7030.d");
+ test_class_info(&lv, &cd_dd7030);
+ dp->~dd7030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7030(Test_dd7030, "dd7030", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd7030C1Ev();
+extern void _ZN6dd7030D1Ev();
+Name_Map name_map_dd7030[] = {
+ NSPAIR(_ZN6dd7030C1Ev),
+ NSPAIR(_ZN6dd7030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+static Base_Class bases_dd7030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, 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 _ZTI6dd7030[];
+extern void _ZN6dd70303barEv();
+extern void _ZN6dd70303fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd70303fooEv,_ZTv0_n16_N6dd70303fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70303fooEv,_ZThn8_N6dd70303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7030[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7030[0]),
+ (VTBL_ENTRY)&_ZN6dd70303barEv,
+ (VTBL_ENTRY)&_ZN6dd70303fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7030[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70303fooEv,_ZTv0_n16_N6dd70303fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd7030[];
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc030__6dd7030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc030__6dd7030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_dd7030[] = {
+ {&(_ZTV6dd7030[4]), 4,11},
+ {&(_ZTV6dd7030[10]), 10,11},
+ {&(_tg__ZTV5cc030__6dd7030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc030__6dd7030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd7030[];
+extern VTBL_ENTRY _ZTV6dd7030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7030[];
+static VTBL_ENTRY alt_thunk_names29[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70303fooEv,_ZTv0_n16_N6dd70303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70303fooEv,_ZThn8_N6dd70303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7030 = { "dd7030", // class name
+ bases_dd7030, 3,
+ &(vtc_dd7030[0]), // expected_vtbl_contents
+ &(vtt_dd7030[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd7030),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7030),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7030),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names29,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07030 : dd7030 {
+ int e;
+ ~ee07030(); // tgen
+ ee07030(); // tgen
+};
+//SIG(1 ee07030) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee07030 ::~ee07030(){ note_dtor("ee07030", this);} // tgen
+ee07030 ::ee07030(){ note_ctor("ee07030", this);} // tgen
+
+static void Test_ee07030()
+{
+ extern Class_Descriptor cd_ee07030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee07030, buf);
+ ee07030 *dp, &lv = *(dp=new (buf) ee07030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee07030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*), ABISELECT(32,24), "ee07030");
+ check_base_class_offset(lv, (bb30*)(cc030*), ABISELECT(16,12), "ee07030");
+ check_base_class_offset(lv, (cc030*)(dd7030*), ABISELECT(16,12), "ee07030");
+ check_base_class_offset(lv, (dd7030*), 0, "ee07030");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07030.e");
+ test_class_info(&lv, &cd_ee07030);
+ dp->~ee07030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07030(Test_ee07030, "ee07030", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee07030C1Ev();
+extern void _ZN7ee07030D1Ev();
+Name_Map name_map_ee07030[] = {
+ NSPAIR(_ZN7ee07030C1Ev),
+ NSPAIR(_ZN7ee07030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+extern Class_Descriptor cd_dd7030;
+extern VTBL_ENTRY _ZTI6dd7030[];
+extern VTBL_ENTRY _ZTV6dd7030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7030[];
+static Base_Class bases_ee07030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7030, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07030[];
+extern void _ZN6dd70303barEv();
+extern void _ZN6dd70303fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd70303fooEv,_ZTv0_n16_N6dd70303fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70303fooEv,_ZThn12_N6dd70303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07030[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07030[0]),
+ (VTBL_ENTRY)&_ZN6dd70303barEv,
+ (VTBL_ENTRY)&_ZN6dd70303fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07030[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70303fooEv,_ZTv0_n16_N6dd70303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee07030[];
+extern void _ZN6dd70303barEv();
+extern void _ZN6dd70303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7030__7ee07030[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7030[0]),
+ (VTBL_ENTRY)&_ZN6dd70303barEv,
+ (VTBL_ENTRY)&_ZN6dd70303fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd70303fooEv,_ZTv0_n16_N6dd70303fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70303fooEv,_ZThn12_N6dd70303fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc030__6dd7030__7ee07030[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7030[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70303fooEv,_ZTv0_n16_N6dd70303fooEv),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc030__7ee07030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc030__7ee07030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee07030[] = {
+ {&(_ZTV7ee07030[4]), 4,11},
+ {&(_tg__ZTV6dd7030__7ee07030[4]), 4,6},
+ {&(_tg__ZTV5cc030__6dd7030__7ee07030[4]), 4,5},
+ {&(_ZTV7ee07030[10]), 10,11},
+ {&(_tg__ZTV5cc030__7ee07030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc030__7ee07030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee07030[];
+extern VTBL_ENTRY _ZTV7ee07030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07030[];
+static VTBL_ENTRY alt_thunk_names30[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70303fooEv,_ZTv0_n16_N6dd70303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70303fooEv,_ZThn12_N6dd70303fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70303fooEv,_ZThn12_N6dd70303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07030 = { "ee07030", // class name
+ bases_ee07030, 4,
+ &(vtc_ee07030[0]), // expected_vtbl_contents
+ &(vtt_ee07030[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee07030),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07030),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07030),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names30,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17030 : virtual dd7030 {
+ int e;
+ ~ee17030(); // tgen
+ ee17030(); // tgen
+};
+//SIG(1 ee17030) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee17030 ::~ee17030(){ note_dtor("ee17030", this);} // tgen
+ee17030 ::ee17030(){ note_ctor("ee17030", this);} // tgen
+
+static void Test_ee17030()
+{
+ extern Class_Descriptor cd_ee17030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee17030, buf);
+ ee17030 *dp, &lv = *(dp=new (buf) ee17030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee17030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*), ABISELECT(48,28), "ee17030");
+ check_base_class_offset(lv, (bb30*)(cc030*), ABISELECT(32,16), "ee17030");
+ check_base_class_offset(lv, (cc030*)(dd7030*), ABISELECT(32,16), "ee17030");
+ check_base_class_offset(lv, (dd7030*), ABISELECT(16,8), "ee17030");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17030.e");
+ test_class_info(&lv, &cd_ee17030);
+ dp->~ee17030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17030(Test_ee17030, "ee17030", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee17030C1Ev();
+extern void _ZN7ee17030D1Ev();
+Name_Map name_map_ee17030[] = {
+ NSPAIR(_ZN7ee17030C1Ev),
+ NSPAIR(_ZN7ee17030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+extern Class_Descriptor cd_dd7030;
+extern VTBL_ENTRY _ZTI6dd7030[];
+extern VTBL_ENTRY _ZTV6dd7030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7030[];
+static Base_Class bases_ee17030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(48,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7030, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee17030[];
+extern void _ZN6dd70303barEv();
+extern void _ZN6dd70303fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd70303fooEv,_ZTv0_n16_N6dd70303fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70303fooEv,_ZThn8_N6dd70303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17030[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17030[0]),
+ 0,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17030[0]),
+ (VTBL_ENTRY)&_ZN6dd70303barEv,
+ (VTBL_ENTRY)&_ZN6dd70303fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17030[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70303fooEv,_ZTv0_n16_N6dd70303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee17030[];
+extern void _ZN6dd70303barEv();
+extern void _ZN6dd70303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7030__7ee17030[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7030[0]),
+ (VTBL_ENTRY)&_ZN6dd70303barEv,
+ (VTBL_ENTRY)&_ZN6dd70303fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd70303fooEv,_ZTv0_n16_N6dd70303fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70303fooEv,_ZThn8_N6dd70303fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc030__6dd7030__7ee17030[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7030[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70303fooEv,_ZTv0_n16_N6dd70303fooEv),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc030__7ee17030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc030__7ee17030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee17030[] = {
+ {&(_ZTV7ee17030[5]), 5,18},
+ {&(_ZTV7ee17030[11]), 11,18},
+ {&(_ZTV7ee17030[17]), 17,18},
+ {&(_tg__ZTV6dd7030__7ee17030[4]), 4,6},
+ {&(_tg__ZTV5cc030__6dd7030__7ee17030[4]), 4,5},
+ {&(_tg__ZTV5cc030__7ee17030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc030__7ee17030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee17030[];
+extern VTBL_ENTRY _ZTV7ee17030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17030[];
+static VTBL_ENTRY alt_thunk_names31[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70303fooEv,_ZTv0_n16_N6dd70303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70303fooEv,_ZThn8_N6dd70303fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70303fooEv,_ZThn8_N6dd70303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17030 = { "ee17030", // class name
+ bases_ee17030, 4,
+ &(vtc_ee17030[0]), // expected_vtbl_contents
+ &(vtt_ee17030[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee17030),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17030),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17030),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names31,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27030 : dd7030 {
+ int e;
+ virtual void foo(); // _ZN7ee270303fooEv
+ ~ee27030(); // tgen
+ ee27030(); // tgen
+};
+//SIG(1 ee27030) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27030 ::foo(){vfunc_called(this, "_ZN7ee270303fooEv");}
+ee27030 ::~ee27030(){ note_dtor("ee27030", this);} // tgen
+ee27030 ::ee27030(){ note_ctor("ee27030", this);} // tgen
+
+static void Test_ee27030()
+{
+ extern Class_Descriptor cd_ee27030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee27030, buf);
+ ee27030 *dp, &lv = *(dp=new (buf) ee27030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee27030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*), ABISELECT(32,24), "ee27030");
+ check_base_class_offset(lv, (bb30*)(cc030*), ABISELECT(16,12), "ee27030");
+ check_base_class_offset(lv, (cc030*)(dd7030*), ABISELECT(16,12), "ee27030");
+ check_base_class_offset(lv, (dd7030*), 0, "ee27030");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27030.e");
+ test_class_info(&lv, &cd_ee27030);
+ dp->~ee27030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27030(Test_ee27030, "ee27030", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee27030C1Ev();
+extern void _ZN7ee27030D1Ev();
+Name_Map name_map_ee27030[] = {
+ NSPAIR(_ZN7ee27030C1Ev),
+ NSPAIR(_ZN7ee27030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+extern Class_Descriptor cd_dd7030;
+extern VTBL_ENTRY _ZTI6dd7030[];
+extern VTBL_ENTRY _ZTV6dd7030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7030[];
+static Base_Class bases_ee27030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7030, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27030[];
+extern void _ZN6dd70303barEv();
+extern void _ZN7ee270303fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee270303fooEv,_ZTv0_n16_N7ee270303fooEv)();
+extern void ABISELECT(_ZThn16_N7ee270303fooEv,_ZThn12_N7ee270303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27030[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27030[0]),
+ (VTBL_ENTRY)&_ZN6dd70303barEv,
+ (VTBL_ENTRY)&_ZN7ee270303fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27030[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee270303fooEv,_ZTv0_n16_N7ee270303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee27030[];
+extern void _ZN6dd70303barEv();
+extern void _ZN6dd70303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7030__7ee27030[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7030[0]),
+ (VTBL_ENTRY)&_ZN6dd70303barEv,
+ (VTBL_ENTRY)&_ZN6dd70303fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd70303fooEv,_ZTv0_n16_N6dd70303fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70303fooEv,_ZThn12_N6dd70303fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc030__6dd7030__7ee27030[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7030[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70303fooEv,_ZTv0_n16_N6dd70303fooEv),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc030__7ee27030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc030__7ee27030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee27030[] = {
+ {&(_ZTV7ee27030[4]), 4,11},
+ {&(_tg__ZTV6dd7030__7ee27030[4]), 4,6},
+ {&(_tg__ZTV5cc030__6dd7030__7ee27030[4]), 4,5},
+ {&(_ZTV7ee27030[10]), 10,11},
+ {&(_tg__ZTV5cc030__7ee27030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc030__7ee27030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee27030[];
+extern VTBL_ENTRY _ZTV7ee27030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27030[];
+static VTBL_ENTRY alt_thunk_names32[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70303fooEv,_ZTv0_n16_N6dd70303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70303fooEv,_ZThn12_N6dd70303fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee270303fooEv,_ZTv0_n16_N7ee270303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee270303fooEv,_ZThn12_N7ee270303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27030 = { "ee27030", // class name
+ bases_ee27030, 4,
+ &(vtc_ee27030[0]), // expected_vtbl_contents
+ &(vtt_ee27030[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee27030),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27030),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27030),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names32,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37030 : virtual dd7030 {
+ int e;
+ virtual void foo(); // _ZN7ee370303fooEv
+ ~ee37030(); // tgen
+ ee37030(); // tgen
+};
+//SIG(1 ee37030) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37030 ::foo(){vfunc_called(this, "_ZN7ee370303fooEv");}
+ee37030 ::~ee37030(){ note_dtor("ee37030", this);} // tgen
+ee37030 ::ee37030(){ note_ctor("ee37030", this);} // tgen
+
+static void Test_ee37030()
+{
+ extern Class_Descriptor cd_ee37030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee37030, buf);
+ ee37030 *dp, &lv = *(dp=new (buf) ee37030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee37030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*), ABISELECT(48,28), "ee37030");
+ check_base_class_offset(lv, (bb30*)(cc030*), ABISELECT(32,16), "ee37030");
+ check_base_class_offset(lv, (cc030*)(dd7030*), ABISELECT(32,16), "ee37030");
+ check_base_class_offset(lv, (dd7030*), ABISELECT(16,8), "ee37030");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37030.e");
+ test_class_info(&lv, &cd_ee37030);
+ dp->~ee37030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37030(Test_ee37030, "ee37030", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee37030C1Ev();
+extern void _ZN7ee37030D1Ev();
+Name_Map name_map_ee37030[] = {
+ NSPAIR(_ZN7ee37030C1Ev),
+ NSPAIR(_ZN7ee37030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+extern Class_Descriptor cd_dd7030;
+extern VTBL_ENTRY _ZTI6dd7030[];
+extern VTBL_ENTRY _ZTV6dd7030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7030[];
+static Base_Class bases_ee37030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(48,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7030, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee37030[];
+extern void _ZN7ee370303fooEv();
+extern void _ZN6dd70303barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee370303fooEv,_ZTv0_n24_N7ee370303fooEv)();
+extern void ABISELECT(_ZThn16_N7ee370303fooEv,_ZThn8_N7ee370303fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee370303fooEv,_ZTv0_n16_N7ee370303fooEv)();
+extern void ABISELECT(_ZThn32_N7ee370303fooEv,_ZThn16_N7ee370303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37030[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37030[0]),
+ (VTBL_ENTRY)&_ZN7ee370303fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37030[0]),
+ (VTBL_ENTRY)&_ZN6dd70303barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee370303fooEv,_ZTv0_n24_N7ee370303fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37030[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee370303fooEv,_ZTv0_n16_N7ee370303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee37030[];
+extern void _ZN6dd70303barEv();
+extern void _ZN6dd70303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7030__7ee37030[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7030[0]),
+ (VTBL_ENTRY)&_ZN6dd70303barEv,
+ (VTBL_ENTRY)&_ZN6dd70303fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd70303fooEv,_ZTv0_n16_N6dd70303fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70303fooEv,_ZThn8_N6dd70303fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc030__6dd7030__7ee37030[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7030[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70303fooEv,_ZTv0_n16_N6dd70303fooEv),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc030__7ee37030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc030__7ee37030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee37030[] = {
+ {&(_ZTV7ee37030[5]), 5,19},
+ {&(_ZTV7ee37030[12]), 12,19},
+ {&(_ZTV7ee37030[18]), 18,19},
+ {&(_tg__ZTV6dd7030__7ee37030[4]), 4,6},
+ {&(_tg__ZTV5cc030__6dd7030__7ee37030[4]), 4,5},
+ {&(_tg__ZTV5cc030__7ee37030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc030__7ee37030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee37030[];
+extern VTBL_ENTRY _ZTV7ee37030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37030[];
+static VTBL_ENTRY alt_thunk_names33[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70303fooEv,_ZTv0_n16_N6dd70303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70303fooEv,_ZThn8_N6dd70303fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee370303fooEv,_ZTv0_n16_N7ee370303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee370303fooEv,_ZThn16_N7ee370303fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee370303fooEv,_ZTv0_n24_N7ee370303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee370303fooEv,_ZThn8_N7ee370303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37030 = { "ee37030", // class name
+ bases_ee37030, 4,
+ &(vtc_ee37030[0]), // expected_vtbl_contents
+ &(vtt_ee37030[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee37030),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37030),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37030),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names33,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47030 : dd7030 {
+ int e;
+ virtual void bar(); // _ZN7ee470303barEv
+ ~ee47030(); // tgen
+ ee47030(); // tgen
+};
+//SIG(1 ee47030) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47030 ::bar(){vfunc_called(this, "_ZN7ee470303barEv");}
+ee47030 ::~ee47030(){ note_dtor("ee47030", this);} // tgen
+ee47030 ::ee47030(){ note_ctor("ee47030", this);} // tgen
+
+static void Test_ee47030()
+{
+ extern Class_Descriptor cd_ee47030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee47030, buf);
+ ee47030 *dp, &lv = *(dp=new (buf) ee47030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee47030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*), ABISELECT(32,24), "ee47030");
+ check_base_class_offset(lv, (bb30*)(cc030*), ABISELECT(16,12), "ee47030");
+ check_base_class_offset(lv, (cc030*)(dd7030*), ABISELECT(16,12), "ee47030");
+ check_base_class_offset(lv, (dd7030*), 0, "ee47030");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47030.e");
+ test_class_info(&lv, &cd_ee47030);
+ dp->~ee47030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47030(Test_ee47030, "ee47030", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee47030C1Ev();
+extern void _ZN7ee47030D1Ev();
+Name_Map name_map_ee47030[] = {
+ NSPAIR(_ZN7ee47030C1Ev),
+ NSPAIR(_ZN7ee47030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+extern Class_Descriptor cd_dd7030;
+extern VTBL_ENTRY _ZTI6dd7030[];
+extern VTBL_ENTRY _ZTV6dd7030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7030[];
+static Base_Class bases_ee47030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7030, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47030[];
+extern void _ZN7ee470303barEv();
+extern void _ZN6dd70303fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd70303fooEv,_ZTv0_n16_N6dd70303fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70303fooEv,_ZThn12_N6dd70303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47030[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47030[0]),
+ (VTBL_ENTRY)&_ZN7ee470303barEv,
+ (VTBL_ENTRY)&_ZN6dd70303fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47030[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70303fooEv,_ZTv0_n16_N6dd70303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee47030[];
+extern void _ZN6dd70303barEv();
+extern void _ZN6dd70303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7030__7ee47030[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7030[0]),
+ (VTBL_ENTRY)&_ZN6dd70303barEv,
+ (VTBL_ENTRY)&_ZN6dd70303fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd70303fooEv,_ZTv0_n16_N6dd70303fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70303fooEv,_ZThn12_N6dd70303fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc030__6dd7030__7ee47030[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7030[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70303fooEv,_ZTv0_n16_N6dd70303fooEv),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc030__7ee47030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc030__7ee47030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee47030[] = {
+ {&(_ZTV7ee47030[4]), 4,11},
+ {&(_tg__ZTV6dd7030__7ee47030[4]), 4,6},
+ {&(_tg__ZTV5cc030__6dd7030__7ee47030[4]), 4,5},
+ {&(_ZTV7ee47030[10]), 10,11},
+ {&(_tg__ZTV5cc030__7ee47030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc030__7ee47030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee47030[];
+extern VTBL_ENTRY _ZTV7ee47030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47030[];
+static VTBL_ENTRY alt_thunk_names34[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70303fooEv,_ZTv0_n16_N6dd70303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70303fooEv,_ZThn12_N6dd70303fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70303fooEv,_ZThn12_N6dd70303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47030 = { "ee47030", // class name
+ bases_ee47030, 4,
+ &(vtc_ee47030[0]), // expected_vtbl_contents
+ &(vtt_ee47030[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee47030),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47030),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47030),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names34,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57030 : virtual dd7030 {
+ int e;
+ virtual void bar(); // _ZN7ee570303barEv
+ ~ee57030(); // tgen
+ ee57030(); // tgen
+};
+//SIG(1 ee57030) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57030 ::bar(){vfunc_called(this, "_ZN7ee570303barEv");}
+ee57030 ::~ee57030(){ note_dtor("ee57030", this);} // tgen
+ee57030 ::ee57030(){ note_ctor("ee57030", this);} // tgen
+
+static void Test_ee57030()
+{
+ extern Class_Descriptor cd_ee57030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee57030, buf);
+ ee57030 *dp, &lv = *(dp=new (buf) ee57030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee57030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*), ABISELECT(48,28), "ee57030");
+ check_base_class_offset(lv, (bb30*)(cc030*), ABISELECT(32,16), "ee57030");
+ check_base_class_offset(lv, (cc030*)(dd7030*), ABISELECT(32,16), "ee57030");
+ check_base_class_offset(lv, (dd7030*), ABISELECT(16,8), "ee57030");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57030.e");
+ test_class_info(&lv, &cd_ee57030);
+ dp->~ee57030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57030(Test_ee57030, "ee57030", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee57030C1Ev();
+extern void _ZN7ee57030D1Ev();
+Name_Map name_map_ee57030[] = {
+ NSPAIR(_ZN7ee57030C1Ev),
+ NSPAIR(_ZN7ee57030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+extern Class_Descriptor cd_dd7030;
+extern VTBL_ENTRY _ZTI6dd7030[];
+extern VTBL_ENTRY _ZTV6dd7030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7030[];
+static Base_Class bases_ee57030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(48,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7030, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee57030[];
+extern void _ZN7ee570303barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee570303barEv,_ZTv0_n20_N7ee570303barEv)();
+extern void ABISELECT(_ZThn16_N7ee570303barEv,_ZThn8_N7ee570303barEv)() __attribute__((weak));
+extern void _ZN6dd70303fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd70303fooEv,_ZTv0_n16_N6dd70303fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70303fooEv,_ZThn8_N6dd70303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57030[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57030[0]),
+ (VTBL_ENTRY)&_ZN7ee570303barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57030[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee570303barEv,_ZTv0_n20_N7ee570303barEv),
+ (VTBL_ENTRY)&_ZN6dd70303fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57030[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70303fooEv,_ZTv0_n16_N6dd70303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee57030[];
+extern void _ZN6dd70303barEv();
+extern void _ZN6dd70303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7030__7ee57030[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7030[0]),
+ (VTBL_ENTRY)&_ZN6dd70303barEv,
+ (VTBL_ENTRY)&_ZN6dd70303fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd70303fooEv,_ZTv0_n16_N6dd70303fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70303fooEv,_ZThn8_N6dd70303fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc030__6dd7030__7ee57030[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7030[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70303fooEv,_ZTv0_n16_N6dd70303fooEv),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc030__7ee57030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc030__7ee57030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee57030[] = {
+ {&(_ZTV7ee57030[5]), 5,19},
+ {&(_ZTV7ee57030[12]), 12,19},
+ {&(_ZTV7ee57030[18]), 18,19},
+ {&(_tg__ZTV6dd7030__7ee57030[4]), 4,6},
+ {&(_tg__ZTV5cc030__6dd7030__7ee57030[4]), 4,5},
+ {&(_tg__ZTV5cc030__7ee57030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc030__7ee57030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee57030[];
+extern VTBL_ENTRY _ZTV7ee57030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57030[];
+static VTBL_ENTRY alt_thunk_names35[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70303fooEv,_ZTv0_n16_N6dd70303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70303fooEv,_ZThn8_N6dd70303fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70303fooEv,_ZThn8_N6dd70303fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee570303barEv,_ZTv0_n20_N7ee570303barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee570303barEv,_ZThn8_N7ee570303barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57030 = { "ee57030", // class name
+ bases_ee57030, 4,
+ &(vtc_ee57030[0]), // expected_vtbl_contents
+ &(vtt_ee57030[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee57030),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57030),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57030),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names35,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67030 : dd7030 {
+ int e;
+ virtual void foo(); // _ZN7ee670303fooEv
+ virtual void bar(); // _ZN7ee670303barEv
+ ~ee67030(); // tgen
+ ee67030(); // tgen
+};
+//SIG(1 ee67030) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67030 ::foo(){vfunc_called(this, "_ZN7ee670303fooEv");}
+void ee67030 ::bar(){vfunc_called(this, "_ZN7ee670303barEv");}
+ee67030 ::~ee67030(){ note_dtor("ee67030", this);} // tgen
+ee67030 ::ee67030(){ note_ctor("ee67030", this);} // tgen
+
+static void Test_ee67030()
+{
+ extern Class_Descriptor cd_ee67030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee67030, buf);
+ ee67030 *dp, &lv = *(dp=new (buf) ee67030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee67030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*), ABISELECT(32,24), "ee67030");
+ check_base_class_offset(lv, (bb30*)(cc030*), ABISELECT(16,12), "ee67030");
+ check_base_class_offset(lv, (cc030*)(dd7030*), ABISELECT(16,12), "ee67030");
+ check_base_class_offset(lv, (dd7030*), 0, "ee67030");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67030.e");
+ test_class_info(&lv, &cd_ee67030);
+ dp->~ee67030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67030(Test_ee67030, "ee67030", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee67030C1Ev();
+extern void _ZN7ee67030D1Ev();
+Name_Map name_map_ee67030[] = {
+ NSPAIR(_ZN7ee67030C1Ev),
+ NSPAIR(_ZN7ee67030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+extern Class_Descriptor cd_dd7030;
+extern VTBL_ENTRY _ZTI6dd7030[];
+extern VTBL_ENTRY _ZTV6dd7030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7030[];
+static Base_Class bases_ee67030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7030, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67030[];
+extern void _ZN7ee670303barEv();
+extern void _ZN7ee670303fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee670303fooEv,_ZTv0_n16_N7ee670303fooEv)();
+extern void ABISELECT(_ZThn16_N7ee670303fooEv,_ZThn12_N7ee670303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67030[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67030[0]),
+ (VTBL_ENTRY)&_ZN7ee670303barEv,
+ (VTBL_ENTRY)&_ZN7ee670303fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67030[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee670303fooEv,_ZTv0_n16_N7ee670303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee67030[];
+extern void _ZN6dd70303barEv();
+extern void _ZN6dd70303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7030__7ee67030[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7030[0]),
+ (VTBL_ENTRY)&_ZN6dd70303barEv,
+ (VTBL_ENTRY)&_ZN6dd70303fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd70303fooEv,_ZTv0_n16_N6dd70303fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70303fooEv,_ZThn12_N6dd70303fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc030__6dd7030__7ee67030[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7030[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70303fooEv,_ZTv0_n16_N6dd70303fooEv),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc030__7ee67030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc030__7ee67030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee67030[] = {
+ {&(_ZTV7ee67030[4]), 4,11},
+ {&(_tg__ZTV6dd7030__7ee67030[4]), 4,6},
+ {&(_tg__ZTV5cc030__6dd7030__7ee67030[4]), 4,5},
+ {&(_ZTV7ee67030[10]), 10,11},
+ {&(_tg__ZTV5cc030__7ee67030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc030__7ee67030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee67030[];
+extern VTBL_ENTRY _ZTV7ee67030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67030[];
+static VTBL_ENTRY alt_thunk_names36[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70303fooEv,_ZTv0_n16_N6dd70303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70303fooEv,_ZThn12_N6dd70303fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee670303fooEv,_ZTv0_n16_N7ee670303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee670303fooEv,_ZThn12_N7ee670303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67030 = { "ee67030", // class name
+ bases_ee67030, 4,
+ &(vtc_ee67030[0]), // expected_vtbl_contents
+ &(vtt_ee67030[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee67030),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67030),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67030),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names36,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77030 : virtual dd7030 {
+ int e;
+ virtual void foo(); // _ZN7ee770303fooEv
+ virtual void bar(); // _ZN7ee770303barEv
+ ~ee77030(); // tgen
+ ee77030(); // tgen
+};
+//SIG(1 ee77030) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77030 ::foo(){vfunc_called(this, "_ZN7ee770303fooEv");}
+void ee77030 ::bar(){vfunc_called(this, "_ZN7ee770303barEv");}
+ee77030 ::~ee77030(){ note_dtor("ee77030", this);} // tgen
+ee77030 ::ee77030(){ note_ctor("ee77030", this);} // tgen
+
+static void Test_ee77030()
+{
+ extern Class_Descriptor cd_ee77030;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee77030, buf);
+ ee77030 *dp, &lv = *(dp=new (buf) ee77030());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee77030)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77030)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc030*), ABISELECT(48,28), "ee77030");
+ check_base_class_offset(lv, (bb30*)(cc030*), ABISELECT(32,16), "ee77030");
+ check_base_class_offset(lv, (cc030*)(dd7030*), ABISELECT(32,16), "ee77030");
+ check_base_class_offset(lv, (dd7030*), ABISELECT(16,8), "ee77030");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77030.e");
+ test_class_info(&lv, &cd_ee77030);
+ dp->~ee77030();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77030(Test_ee77030, "ee77030", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee77030C1Ev();
+extern void _ZN7ee77030D1Ev();
+Name_Map name_map_ee77030[] = {
+ NSPAIR(_ZN7ee77030C1Ev),
+ NSPAIR(_ZN7ee77030D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc030;
+extern VTBL_ENTRY _ZTI5cc030[];
+extern VTBL_ENTRY _ZTV5cc030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc030[];
+extern Class_Descriptor cd_dd7030;
+extern VTBL_ENTRY _ZTI6dd7030[];
+extern VTBL_ENTRY _ZTV6dd7030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7030[];
+static Base_Class bases_ee77030[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(48,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc030, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7030, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee77030[];
+extern void _ZN7ee770303fooEv();
+extern void _ZN7ee770303barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee770303barEv,_ZTv0_n20_N7ee770303barEv)();
+extern void ABISELECT(_ZThn16_N7ee770303barEv,_ZThn8_N7ee770303barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee770303fooEv,_ZTv0_n24_N7ee770303fooEv)();
+extern void ABISELECT(_ZThn16_N7ee770303fooEv,_ZThn8_N7ee770303fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee770303fooEv,_ZTv0_n16_N7ee770303fooEv)();
+extern void ABISELECT(_ZThn32_N7ee770303fooEv,_ZThn16_N7ee770303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77030[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77030[0]),
+ (VTBL_ENTRY)&_ZN7ee770303fooEv,
+ (VTBL_ENTRY)&_ZN7ee770303barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77030[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee770303barEv,_ZTv0_n20_N7ee770303barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee770303fooEv,_ZTv0_n24_N7ee770303fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77030[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee770303fooEv,_ZTv0_n16_N7ee770303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee77030[];
+extern void _ZN6dd70303barEv();
+extern void _ZN6dd70303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7030__7ee77030[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7030[0]),
+ (VTBL_ENTRY)&_ZN6dd70303barEv,
+ (VTBL_ENTRY)&_ZN6dd70303fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd70303fooEv,_ZTv0_n16_N6dd70303fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70303fooEv,_ZThn8_N6dd70303fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc030__6dd7030__7ee77030[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7030[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70303fooEv,_ZTv0_n16_N6dd70303fooEv),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc030__7ee77030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc030[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc030__7ee77030[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee77030[] = {
+ {&(_ZTV7ee77030[5]), 5,20},
+ {&(_ZTV7ee77030[13]), 13,20},
+ {&(_ZTV7ee77030[19]), 19,20},
+ {&(_tg__ZTV6dd7030__7ee77030[4]), 4,6},
+ {&(_tg__ZTV5cc030__6dd7030__7ee77030[4]), 4,5},
+ {&(_tg__ZTV5cc030__7ee77030[3]), 3,4},
+ {&(_tg__ZTV4bb305cc030__7ee77030[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee77030[];
+extern VTBL_ENTRY _ZTV7ee77030[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77030[];
+static VTBL_ENTRY alt_thunk_names37[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70303fooEv,_ZTv0_n16_N6dd70303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70303fooEv,_ZThn8_N6dd70303fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee770303fooEv,_ZTv0_n16_N7ee770303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee770303fooEv,_ZThn16_N7ee770303fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee770303fooEv,_ZTv0_n24_N7ee770303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee770303fooEv,_ZThn8_N7ee770303fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee770303barEv,_ZTv0_n20_N7ee770303barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee770303barEv,_ZThn8_N7ee770303barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77030 = { "ee77030", // class name
+ bases_ee77030, 4,
+ &(vtc_ee77030[0]), // expected_vtbl_contents
+ &(vtt_ee77030[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee77030),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77030),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77030),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names37,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc130 : virtual bb30 {
+ int c;
+ ~cc130(); // tgen
+ cc130(); // tgen
+};
+//SIG(-1 cc130) C1{ VBC2{ VBC3{ Fi} v1 Fi} Fi}
+
+
+cc130 ::~cc130(){ note_dtor("cc130", this);} // tgen
+cc130 ::cc130(){ note_ctor("cc130", this);} // tgen
+
+static void Test_cc130()
+{
+ extern Class_Descriptor cd_cc130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_cc130, buf);
+ cc130 *dp, &lv = *(dp=new (buf) cc130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(cc130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(28,16), "cc130");
+ check_base_class_offset(lv, (bb30*), ABISELECT(16,8), "cc130");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc130.c");
+ test_class_info(&lv, &cd_cc130);
+ dp->~cc130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc130(Test_cc130, "cc130", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN5cc130C1Ev();
+extern void _ZN5cc130D1Ev();
+Name_Map name_map_cc130[] = {
+ NSPAIR(_ZN5cc130C1Ev),
+ NSPAIR(_ZN5cc130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+static Base_Class bases_cc130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, 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 _ZTI5cc130[];
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY vtc_cc130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern VTBL_ENTRY _ZTV5cc130[];
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_cc130[] = {
+ {&(_ZTV5cc130[4]), 4,9},
+ {&(_ZTV5cc130[8]), 8,9},
+ {&(_tg__ZTV4bb30__5cc130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+Class_Descriptor cd_cc130 = { "cc130", // class name
+ bases_cc130, 2,
+ &(vtc_cc130[0]), // expected_vtbl_contents
+ &(vtt_cc130[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI5cc130),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV5cc130),9, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5cc130),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 dd0130 : cc130 {
+ int d;
+ ~dd0130(); // tgen
+ dd0130(); // tgen
+};
+//SIG(-1 dd0130) C1{ BC2{ VBC3{ VBC4{ Fi} v1 Fi} Fi} Fi}
+
+
+dd0130 ::~dd0130(){ note_dtor("dd0130", this);} // tgen
+dd0130 ::dd0130(){ note_ctor("dd0130", this);} // tgen
+
+static void Test_dd0130()
+{
+ extern Class_Descriptor cd_dd0130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd0130, buf);
+ dd0130 *dp, &lv = *(dp=new (buf) dd0130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd0130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(28,20), "dd0130");
+ check_base_class_offset(lv, (bb30*)(cc130*), ABISELECT(16,12), "dd0130");
+ check_base_class_offset(lv, (cc130*), 0, "dd0130");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd0130.d");
+ test_class_info(&lv, &cd_dd0130);
+ dp->~dd0130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0130(Test_dd0130, "dd0130", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd0130C1Ev();
+extern void _ZN6dd0130D1Ev();
+Name_Map name_map_dd0130[] = {
+ NSPAIR(_ZN6dd0130C1Ev),
+ NSPAIR(_ZN6dd0130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+static Base_Class bases_dd0130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd0130[];
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY vtc_dd0130[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0130[0]),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd0130[];
+static VTBL_ENTRY _tg__ZTV5cc130__6dd0130[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc130__6dd0130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__6dd0130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_dd0130[] = {
+ {&(_ZTV6dd0130[4]), 4,9},
+ {&(_tg__ZTV5cc130__6dd0130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc130__6dd0130[4]), 4,5},
+ {&(_ZTV6dd0130[8]), 8,9},
+ {&(_tg__ZTV4bb30__6dd0130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd0130[];
+extern VTBL_ENTRY _ZTV6dd0130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0130[];
+Class_Descriptor cd_dd0130 = { "dd0130", // class name
+ bases_dd0130, 3,
+ &(vtc_dd0130[0]), // expected_vtbl_contents
+ &(vtt_dd0130[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd0130),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0130),9, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd0130),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 ee00130 : dd0130 {
+ int e;
+ ~ee00130(); // tgen
+ ee00130(); // tgen
+};
+//SIG(1 ee00130) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} Fi} Fi}
+
+
+ee00130 ::~ee00130(){ note_dtor("ee00130", this);} // tgen
+ee00130 ::ee00130(){ note_ctor("ee00130", this);} // tgen
+
+static void Test_ee00130()
+{
+ extern Class_Descriptor cd_ee00130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee00130, buf);
+ ee00130 *dp, &lv = *(dp=new (buf) ee00130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee00130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(36,24), "ee00130");
+ check_base_class_offset(lv, (bb30*)(cc130*)(dd0130*), ABISELECT(24,16), "ee00130");
+ check_base_class_offset(lv, (cc130*)(dd0130*), 0, "ee00130");
+ check_base_class_offset(lv, (dd0130*), 0, "ee00130");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee00130.e");
+ test_class_info(&lv, &cd_ee00130);
+ dp->~ee00130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00130(Test_ee00130, "ee00130", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee00130C1Ev();
+extern void _ZN7ee00130D1Ev();
+Name_Map name_map_ee00130[] = {
+ NSPAIR(_ZN7ee00130C1Ev),
+ NSPAIR(_ZN7ee00130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+extern Class_Descriptor cd_dd0130;
+extern VTBL_ENTRY _ZTI6dd0130[];
+extern VTBL_ENTRY _ZTV6dd0130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0130[];
+static Base_Class bases_ee00130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0130, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00130[];
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY vtc_ee00130[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00130[0]),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee00130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee00130[];
+static VTBL_ENTRY _tg__ZTV6dd0130__7ee00130[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0130[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1306dd0130__7ee00130[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc1306dd0130__7ee00130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__6dd0130__7ee00130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__7ee00130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee00130[] = {
+ {&(_ZTV7ee00130[4]), 4,9},
+ {&(_tg__ZTV6dd0130__7ee00130[4]), 4,4},
+ {&(_tg__ZTV5cc1306dd0130__7ee00130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc1306dd0130__7ee00130[4]), 4,5},
+ {&(_tg__ZTV4bb30__6dd0130__7ee00130[4]), 4,5},
+ {&(_ZTV7ee00130[8]), 8,9},
+ {&(_tg__ZTV4bb30__7ee00130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee00130[];
+extern VTBL_ENTRY _ZTV7ee00130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee00130[];
+Class_Descriptor cd_ee00130 = { "ee00130", // class name
+ bases_ee00130, 4,
+ &(vtc_ee00130[0]), // expected_vtbl_contents
+ &(vtt_ee00130[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee00130),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00130),9, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee00130),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee10130 : virtual dd0130 {
+ int e;
+ ~ee10130(); // tgen
+ ee10130(); // tgen
+};
+//SIG(1 ee10130) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} Fi} Fi}
+
+
+ee10130 ::~ee10130(){ note_dtor("ee10130", this);} // tgen
+ee10130 ::ee10130(){ note_ctor("ee10130", this);} // tgen
+
+static void Test_ee10130()
+{
+ extern Class_Descriptor cd_ee10130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee10130, buf);
+ ee10130 *dp, &lv = *(dp=new (buf) ee10130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee10130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(44,28), "ee10130");
+ check_base_class_offset(lv, (bb30*)(cc130*)(dd0130*), ABISELECT(32,20), "ee10130");
+ check_base_class_offset(lv, (cc130*)(dd0130*), ABISELECT(16,8), "ee10130");
+ check_base_class_offset(lv, (dd0130*), ABISELECT(16,8), "ee10130");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10130.e");
+ test_class_info(&lv, &cd_ee10130);
+ dp->~ee10130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10130(Test_ee10130, "ee10130", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee10130C1Ev();
+extern void _ZN7ee10130D1Ev();
+Name_Map name_map_ee10130[] = {
+ NSPAIR(_ZN7ee10130C1Ev),
+ NSPAIR(_ZN7ee10130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+extern Class_Descriptor cd_dd0130;
+extern VTBL_ENTRY _ZTI6dd0130[];
+extern VTBL_ENTRY _ZTV6dd0130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0130[];
+static Base_Class bases_ee10130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0130, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee10130[];
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY vtc_ee10130[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10130[0]),
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10130[0]),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee10130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee10130[];
+static VTBL_ENTRY _tg__ZTV6dd0130__7ee10130[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0130[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1306dd0130__7ee10130[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc1306dd0130__7ee10130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__6dd0130__7ee10130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__7ee10130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee10130[] = {
+ {&(_ZTV7ee10130[5]), 5,14},
+ {&(_ZTV7ee10130[9]), 9,14},
+ {&(_ZTV7ee10130[13]), 13,14},
+ {&(_tg__ZTV6dd0130__7ee10130[4]), 4,4},
+ {&(_tg__ZTV5cc1306dd0130__7ee10130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc1306dd0130__7ee10130[4]), 4,5},
+ {&(_tg__ZTV4bb30__6dd0130__7ee10130[4]), 4,5},
+ {&(_tg__ZTV4bb30__7ee10130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee10130[];
+extern VTBL_ENTRY _ZTV7ee10130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10130[];
+Class_Descriptor cd_ee10130 = { "ee10130", // class name
+ bases_ee10130, 4,
+ &(vtc_ee10130[0]), // expected_vtbl_contents
+ &(vtt_ee10130[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee10130),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10130),14, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10130),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee20130 : dd0130 {
+ int e;
+ virtual void foo(); // _ZN7ee201303fooEv
+ ~ee20130(); // tgen
+ ee20130(); // tgen
+};
+//SIG(1 ee20130) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee20130 ::foo(){vfunc_called(this, "_ZN7ee201303fooEv");}
+ee20130 ::~ee20130(){ note_dtor("ee20130", this);} // tgen
+ee20130 ::ee20130(){ note_ctor("ee20130", this);} // tgen
+
+static void Test_ee20130()
+{
+ extern Class_Descriptor cd_ee20130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee20130, buf);
+ ee20130 *dp, &lv = *(dp=new (buf) ee20130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee20130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(36,24), "ee20130");
+ check_base_class_offset(lv, (bb30*)(cc130*)(dd0130*), ABISELECT(24,16), "ee20130");
+ check_base_class_offset(lv, (cc130*)(dd0130*), 0, "ee20130");
+ check_base_class_offset(lv, (dd0130*), 0, "ee20130");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee20130.e");
+ test_class_info(&lv, &cd_ee20130);
+ dp->~ee20130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20130(Test_ee20130, "ee20130", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee20130C1Ev();
+extern void _ZN7ee20130D1Ev();
+Name_Map name_map_ee20130[] = {
+ NSPAIR(_ZN7ee20130C1Ev),
+ NSPAIR(_ZN7ee20130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+extern Class_Descriptor cd_dd0130;
+extern VTBL_ENTRY _ZTI6dd0130[];
+extern VTBL_ENTRY _ZTV6dd0130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0130[];
+static Base_Class bases_ee20130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0130, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20130[];
+extern void _ZN7ee201303fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee201303fooEv,_ZTv0_n16_N7ee201303fooEv)();
+extern void ABISELECT(_ZThn24_N7ee201303fooEv,_ZThn16_N7ee201303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee20130[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20130[0]),
+ (VTBL_ENTRY)&_ZN7ee201303fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee20130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee201303fooEv,_ZTv0_n16_N7ee201303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee20130[];
+static VTBL_ENTRY _tg__ZTV6dd0130__7ee20130[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0130[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1306dd0130__7ee20130[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc1306dd0130__7ee20130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__6dd0130__7ee20130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__7ee20130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee20130[] = {
+ {&(_ZTV7ee20130[4]), 4,10},
+ {&(_tg__ZTV6dd0130__7ee20130[4]), 4,4},
+ {&(_tg__ZTV5cc1306dd0130__7ee20130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc1306dd0130__7ee20130[4]), 4,5},
+ {&(_tg__ZTV4bb30__6dd0130__7ee20130[4]), 4,5},
+ {&(_ZTV7ee20130[9]), 9,10},
+ {&(_tg__ZTV4bb30__7ee20130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee20130[];
+extern VTBL_ENTRY _ZTV7ee20130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee20130[];
+static VTBL_ENTRY alt_thunk_names38[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee201303fooEv,_ZTv0_n16_N7ee201303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee201303fooEv,_ZThn16_N7ee201303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee20130 = { "ee20130", // class name
+ bases_ee20130, 4,
+ &(vtc_ee20130[0]), // expected_vtbl_contents
+ &(vtt_ee20130[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee20130),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20130),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee20130),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names38,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee30130 : virtual dd0130 {
+ int e;
+ virtual void foo(); // _ZN7ee301303fooEv
+ ~ee30130(); // tgen
+ ee30130(); // tgen
+};
+//SIG(1 ee30130) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee30130 ::foo(){vfunc_called(this, "_ZN7ee301303fooEv");}
+ee30130 ::~ee30130(){ note_dtor("ee30130", this);} // tgen
+ee30130 ::ee30130(){ note_ctor("ee30130", this);} // tgen
+
+static void Test_ee30130()
+{
+ extern Class_Descriptor cd_ee30130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee30130, buf);
+ ee30130 *dp, &lv = *(dp=new (buf) ee30130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee30130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(44,28), "ee30130");
+ check_base_class_offset(lv, (bb30*)(cc130*)(dd0130*), ABISELECT(32,20), "ee30130");
+ check_base_class_offset(lv, (cc130*)(dd0130*), ABISELECT(16,8), "ee30130");
+ check_base_class_offset(lv, (dd0130*), ABISELECT(16,8), "ee30130");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30130.e");
+ test_class_info(&lv, &cd_ee30130);
+ dp->~ee30130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30130(Test_ee30130, "ee30130", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee30130C1Ev();
+extern void _ZN7ee30130D1Ev();
+Name_Map name_map_ee30130[] = {
+ NSPAIR(_ZN7ee30130C1Ev),
+ NSPAIR(_ZN7ee30130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+extern Class_Descriptor cd_dd0130;
+extern VTBL_ENTRY _ZTI6dd0130[];
+extern VTBL_ENTRY _ZTV6dd0130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0130[];
+static Base_Class bases_ee30130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0130, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee30130[];
+extern void _ZN7ee301303fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee301303fooEv,_ZTv0_n16_N7ee301303fooEv)();
+extern void ABISELECT(_ZThn32_N7ee301303fooEv,_ZThn20_N7ee301303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee30130[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30130[0]),
+ (VTBL_ENTRY)&_ZN7ee301303fooEv,
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30130[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee30130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee301303fooEv,_ZTv0_n16_N7ee301303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee30130[];
+static VTBL_ENTRY _tg__ZTV6dd0130__7ee30130[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0130[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1306dd0130__7ee30130[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc1306dd0130__7ee30130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__6dd0130__7ee30130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__7ee30130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee30130[] = {
+ {&(_ZTV7ee30130[5]), 5,15},
+ {&(_ZTV7ee30130[10]), 10,15},
+ {&(_ZTV7ee30130[14]), 14,15},
+ {&(_tg__ZTV6dd0130__7ee30130[4]), 4,4},
+ {&(_tg__ZTV5cc1306dd0130__7ee30130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc1306dd0130__7ee30130[4]), 4,5},
+ {&(_tg__ZTV4bb30__6dd0130__7ee30130[4]), 4,5},
+ {&(_tg__ZTV4bb30__7ee30130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee30130[];
+extern VTBL_ENTRY _ZTV7ee30130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30130[];
+static VTBL_ENTRY alt_thunk_names39[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee301303fooEv,_ZTv0_n16_N7ee301303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee301303fooEv,_ZThn20_N7ee301303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30130 = { "ee30130", // class name
+ bases_ee30130, 4,
+ &(vtc_ee30130[0]), // expected_vtbl_contents
+ &(vtt_ee30130[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee30130),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30130),15, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30130),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names39,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40130 : dd0130 {
+ int e;
+ virtual void bar(); // _ZN7ee401303barEv
+ ~ee40130(); // tgen
+ ee40130(); // tgen
+};
+//SIG(1 ee40130) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee40130 ::bar(){vfunc_called(this, "_ZN7ee401303barEv");}
+ee40130 ::~ee40130(){ note_dtor("ee40130", this);} // tgen
+ee40130 ::ee40130(){ note_ctor("ee40130", this);} // tgen
+
+static void Test_ee40130()
+{
+ extern Class_Descriptor cd_ee40130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee40130, buf);
+ ee40130 *dp, &lv = *(dp=new (buf) ee40130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee40130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(36,24), "ee40130");
+ check_base_class_offset(lv, (bb30*)(cc130*)(dd0130*), ABISELECT(24,16), "ee40130");
+ check_base_class_offset(lv, (cc130*)(dd0130*), 0, "ee40130");
+ check_base_class_offset(lv, (dd0130*), 0, "ee40130");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee40130.e");
+ test_class_info(&lv, &cd_ee40130);
+ dp->~ee40130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40130(Test_ee40130, "ee40130", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee40130C1Ev();
+extern void _ZN7ee40130D1Ev();
+Name_Map name_map_ee40130[] = {
+ NSPAIR(_ZN7ee40130C1Ev),
+ NSPAIR(_ZN7ee40130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+extern Class_Descriptor cd_dd0130;
+extern VTBL_ENTRY _ZTI6dd0130[];
+extern VTBL_ENTRY _ZTV6dd0130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0130[];
+static Base_Class bases_ee40130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0130, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40130[];
+extern void _ZN7ee401303barEv();
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY vtc_ee40130[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40130[0]),
+ (VTBL_ENTRY)&_ZN7ee401303barEv,
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee40130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee40130[];
+static VTBL_ENTRY _tg__ZTV6dd0130__7ee40130[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0130[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1306dd0130__7ee40130[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc1306dd0130__7ee40130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__6dd0130__7ee40130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__7ee40130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee40130[] = {
+ {&(_ZTV7ee40130[4]), 4,10},
+ {&(_tg__ZTV6dd0130__7ee40130[4]), 4,4},
+ {&(_tg__ZTV5cc1306dd0130__7ee40130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc1306dd0130__7ee40130[4]), 4,5},
+ {&(_tg__ZTV4bb30__6dd0130__7ee40130[4]), 4,5},
+ {&(_ZTV7ee40130[9]), 9,10},
+ {&(_tg__ZTV4bb30__7ee40130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee40130[];
+extern VTBL_ENTRY _ZTV7ee40130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee40130[];
+Class_Descriptor cd_ee40130 = { "ee40130", // class name
+ bases_ee40130, 4,
+ &(vtc_ee40130[0]), // expected_vtbl_contents
+ &(vtt_ee40130[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee40130),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40130),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee40130),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee50130 : virtual dd0130 {
+ int e;
+ virtual void bar(); // _ZN7ee501303barEv
+ ~ee50130(); // tgen
+ ee50130(); // tgen
+};
+//SIG(1 ee50130) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee50130 ::bar(){vfunc_called(this, "_ZN7ee501303barEv");}
+ee50130 ::~ee50130(){ note_dtor("ee50130", this);} // tgen
+ee50130 ::ee50130(){ note_ctor("ee50130", this);} // tgen
+
+static void Test_ee50130()
+{
+ extern Class_Descriptor cd_ee50130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee50130, buf);
+ ee50130 *dp, &lv = *(dp=new (buf) ee50130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee50130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(44,28), "ee50130");
+ check_base_class_offset(lv, (bb30*)(cc130*)(dd0130*), ABISELECT(32,20), "ee50130");
+ check_base_class_offset(lv, (cc130*)(dd0130*), ABISELECT(16,8), "ee50130");
+ check_base_class_offset(lv, (dd0130*), ABISELECT(16,8), "ee50130");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50130.e");
+ test_class_info(&lv, &cd_ee50130);
+ dp->~ee50130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50130(Test_ee50130, "ee50130", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee50130C1Ev();
+extern void _ZN7ee50130D1Ev();
+Name_Map name_map_ee50130[] = {
+ NSPAIR(_ZN7ee50130C1Ev),
+ NSPAIR(_ZN7ee50130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+extern Class_Descriptor cd_dd0130;
+extern VTBL_ENTRY _ZTI6dd0130[];
+extern VTBL_ENTRY _ZTV6dd0130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0130[];
+static Base_Class bases_ee50130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0130, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee50130[];
+extern void _ZN7ee501303barEv();
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY vtc_ee50130[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50130[0]),
+ (VTBL_ENTRY)&_ZN7ee501303barEv,
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50130[0]),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee50130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee50130[];
+static VTBL_ENTRY _tg__ZTV6dd0130__7ee50130[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0130[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1306dd0130__7ee50130[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc1306dd0130__7ee50130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__6dd0130__7ee50130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__7ee50130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee50130[] = {
+ {&(_ZTV7ee50130[5]), 5,15},
+ {&(_ZTV7ee50130[10]), 10,15},
+ {&(_ZTV7ee50130[14]), 14,15},
+ {&(_tg__ZTV6dd0130__7ee50130[4]), 4,4},
+ {&(_tg__ZTV5cc1306dd0130__7ee50130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc1306dd0130__7ee50130[4]), 4,5},
+ {&(_tg__ZTV4bb30__6dd0130__7ee50130[4]), 4,5},
+ {&(_tg__ZTV4bb30__7ee50130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee50130[];
+extern VTBL_ENTRY _ZTV7ee50130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50130[];
+Class_Descriptor cd_ee50130 = { "ee50130", // class name
+ bases_ee50130, 4,
+ &(vtc_ee50130[0]), // expected_vtbl_contents
+ &(vtt_ee50130[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee50130),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50130),15, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50130),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60130 : dd0130 {
+ int e;
+ virtual void foo(); // _ZN7ee601303fooEv
+ virtual void bar(); // _ZN7ee601303barEv
+ ~ee60130(); // tgen
+ ee60130(); // tgen
+};
+//SIG(1 ee60130) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee60130 ::foo(){vfunc_called(this, "_ZN7ee601303fooEv");}
+void ee60130 ::bar(){vfunc_called(this, "_ZN7ee601303barEv");}
+ee60130 ::~ee60130(){ note_dtor("ee60130", this);} // tgen
+ee60130 ::ee60130(){ note_ctor("ee60130", this);} // tgen
+
+static void Test_ee60130()
+{
+ extern Class_Descriptor cd_ee60130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee60130, buf);
+ ee60130 *dp, &lv = *(dp=new (buf) ee60130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee60130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(36,24), "ee60130");
+ check_base_class_offset(lv, (bb30*)(cc130*)(dd0130*), ABISELECT(24,16), "ee60130");
+ check_base_class_offset(lv, (cc130*)(dd0130*), 0, "ee60130");
+ check_base_class_offset(lv, (dd0130*), 0, "ee60130");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee60130.e");
+ test_class_info(&lv, &cd_ee60130);
+ dp->~ee60130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60130(Test_ee60130, "ee60130", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee60130C1Ev();
+extern void _ZN7ee60130D1Ev();
+Name_Map name_map_ee60130[] = {
+ NSPAIR(_ZN7ee60130C1Ev),
+ NSPAIR(_ZN7ee60130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+extern Class_Descriptor cd_dd0130;
+extern VTBL_ENTRY _ZTI6dd0130[];
+extern VTBL_ENTRY _ZTV6dd0130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0130[];
+static Base_Class bases_ee60130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0130, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60130[];
+extern void _ZN7ee601303fooEv();
+extern void _ZN7ee601303barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee601303fooEv,_ZTv0_n16_N7ee601303fooEv)();
+extern void ABISELECT(_ZThn24_N7ee601303fooEv,_ZThn16_N7ee601303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee60130[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60130[0]),
+ (VTBL_ENTRY)&_ZN7ee601303fooEv,
+ (VTBL_ENTRY)&_ZN7ee601303barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee60130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee601303fooEv,_ZTv0_n16_N7ee601303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee60130[];
+static VTBL_ENTRY _tg__ZTV6dd0130__7ee60130[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0130[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1306dd0130__7ee60130[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc1306dd0130__7ee60130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__6dd0130__7ee60130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__7ee60130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee60130[] = {
+ {&(_ZTV7ee60130[4]), 4,11},
+ {&(_tg__ZTV6dd0130__7ee60130[4]), 4,4},
+ {&(_tg__ZTV5cc1306dd0130__7ee60130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc1306dd0130__7ee60130[4]), 4,5},
+ {&(_tg__ZTV4bb30__6dd0130__7ee60130[4]), 4,5},
+ {&(_ZTV7ee60130[10]), 10,11},
+ {&(_tg__ZTV4bb30__7ee60130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee60130[];
+extern VTBL_ENTRY _ZTV7ee60130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee60130[];
+static VTBL_ENTRY alt_thunk_names40[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee601303fooEv,_ZTv0_n16_N7ee601303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee601303fooEv,_ZThn16_N7ee601303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee60130 = { "ee60130", // class name
+ bases_ee60130, 4,
+ &(vtc_ee60130[0]), // expected_vtbl_contents
+ &(vtt_ee60130[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee60130),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60130),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee60130),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names40,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee70130 : virtual dd0130 {
+ int e;
+ virtual void foo(); // _ZN7ee701303fooEv
+ virtual void bar(); // _ZN7ee701303barEv
+ ~ee70130(); // tgen
+ ee70130(); // tgen
+};
+//SIG(1 ee70130) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee70130 ::foo(){vfunc_called(this, "_ZN7ee701303fooEv");}
+void ee70130 ::bar(){vfunc_called(this, "_ZN7ee701303barEv");}
+ee70130 ::~ee70130(){ note_dtor("ee70130", this);} // tgen
+ee70130 ::ee70130(){ note_ctor("ee70130", this);} // tgen
+
+static void Test_ee70130()
+{
+ extern Class_Descriptor cd_ee70130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee70130, buf);
+ ee70130 *dp, &lv = *(dp=new (buf) ee70130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee70130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(44,28), "ee70130");
+ check_base_class_offset(lv, (bb30*)(cc130*)(dd0130*), ABISELECT(32,20), "ee70130");
+ check_base_class_offset(lv, (cc130*)(dd0130*), ABISELECT(16,8), "ee70130");
+ check_base_class_offset(lv, (dd0130*), ABISELECT(16,8), "ee70130");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70130.e");
+ test_class_info(&lv, &cd_ee70130);
+ dp->~ee70130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70130(Test_ee70130, "ee70130", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee70130C1Ev();
+extern void _ZN7ee70130D1Ev();
+Name_Map name_map_ee70130[] = {
+ NSPAIR(_ZN7ee70130C1Ev),
+ NSPAIR(_ZN7ee70130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+extern Class_Descriptor cd_dd0130;
+extern VTBL_ENTRY _ZTI6dd0130[];
+extern VTBL_ENTRY _ZTV6dd0130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0130[];
+static Base_Class bases_ee70130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0130, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee70130[];
+extern void _ZN7ee701303fooEv();
+extern void _ZN7ee701303barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee701303fooEv,_ZTv0_n16_N7ee701303fooEv)();
+extern void ABISELECT(_ZThn32_N7ee701303fooEv,_ZThn20_N7ee701303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70130[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70130[0]),
+ (VTBL_ENTRY)&_ZN7ee701303fooEv,
+ (VTBL_ENTRY)&_ZN7ee701303barEv,
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70130[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee70130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee701303fooEv,_ZTv0_n16_N7ee701303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee70130[];
+static VTBL_ENTRY _tg__ZTV6dd0130__7ee70130[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0130[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1306dd0130__7ee70130[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc1306dd0130__7ee70130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__6dd0130__7ee70130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__7ee70130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee70130[] = {
+ {&(_ZTV7ee70130[5]), 5,16},
+ {&(_ZTV7ee70130[11]), 11,16},
+ {&(_ZTV7ee70130[15]), 15,16},
+ {&(_tg__ZTV6dd0130__7ee70130[4]), 4,4},
+ {&(_tg__ZTV5cc1306dd0130__7ee70130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc1306dd0130__7ee70130[4]), 4,5},
+ {&(_tg__ZTV4bb30__6dd0130__7ee70130[4]), 4,5},
+ {&(_tg__ZTV4bb30__7ee70130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee70130[];
+extern VTBL_ENTRY _ZTV7ee70130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70130[];
+static VTBL_ENTRY alt_thunk_names41[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee701303fooEv,_ZTv0_n16_N7ee701303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee701303fooEv,_ZThn20_N7ee701303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70130 = { "ee70130", // class name
+ bases_ee70130, 4,
+ &(vtc_ee70130[0]), // expected_vtbl_contents
+ &(vtt_ee70130[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee70130),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70130),16, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70130),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names41,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1130 : virtual cc130 {
+ int d;
+ ~dd1130(); // tgen
+ dd1130(); // tgen
+};
+//SIG(-1 dd1130) C1{ VBC2{ VBC3{ VBC4{ Fi} v1 Fi} Fi} Fi}
+
+
+dd1130 ::~dd1130(){ note_dtor("dd1130", this);} // tgen
+dd1130 ::dd1130(){ note_ctor("dd1130", this);} // tgen
+
+static void Test_dd1130()
+{
+ extern Class_Descriptor cd_dd1130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd1130, buf);
+ dd1130 *dp, &lv = *(dp=new (buf) dd1130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd1130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(44,24), "dd1130");
+ check_base_class_offset(lv, (bb30*)(cc130*), ABISELECT(32,16), "dd1130");
+ check_base_class_offset(lv, (cc130*), ABISELECT(16,8), "dd1130");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1130.d");
+ test_class_info(&lv, &cd_dd1130);
+ dp->~dd1130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1130(Test_dd1130, "dd1130", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd1130C1Ev();
+extern void _ZN6dd1130D1Ev();
+Name_Map name_map_dd1130[] = {
+ NSPAIR(_ZN6dd1130C1Ev),
+ NSPAIR(_ZN6dd1130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+static Base_Class bases_dd1130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, 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 _ZTI6dd1130[];
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY vtc_dd1130[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1130[0]),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1130[0]),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd1130[];
+static VTBL_ENTRY _tg__ZTV5cc130__6dd1130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc130__6dd1130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__6dd1130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_dd1130[] = {
+ {&(_ZTV6dd1130[5]), 5,14},
+ {&(_ZTV6dd1130[9]), 9,14},
+ {&(_ZTV6dd1130[13]), 13,14},
+ {&(_tg__ZTV5cc130__6dd1130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc130__6dd1130[4]), 4,5},
+ {&(_tg__ZTV4bb30__6dd1130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd1130[];
+extern VTBL_ENTRY _ZTV6dd1130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1130[];
+Class_Descriptor cd_dd1130 = { "dd1130", // class name
+ bases_dd1130, 3,
+ &(vtc_dd1130[0]), // expected_vtbl_contents
+ &(vtt_dd1130[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd1130),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1130),14, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1130),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 ee01130 : dd1130 {
+ int e;
+ ~ee01130(); // tgen
+ ee01130(); // tgen
+};
+//SIG(1 ee01130) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} Fi} Fi}
+
+
+ee01130 ::~ee01130(){ note_dtor("ee01130", this);} // tgen
+ee01130 ::ee01130(){ note_ctor("ee01130", this);} // tgen
+
+static void Test_ee01130()
+{
+ extern Class_Descriptor cd_ee01130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee01130, buf);
+ ee01130 *dp, &lv = *(dp=new (buf) ee01130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee01130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(44,28), "ee01130");
+ check_base_class_offset(lv, (bb30*)(cc130*), ABISELECT(32,20), "ee01130");
+ check_base_class_offset(lv, (cc130*)(dd1130*), ABISELECT(16,12), "ee01130");
+ check_base_class_offset(lv, (dd1130*), 0, "ee01130");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01130.e");
+ test_class_info(&lv, &cd_ee01130);
+ dp->~ee01130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01130(Test_ee01130, "ee01130", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee01130C1Ev();
+extern void _ZN7ee01130D1Ev();
+Name_Map name_map_ee01130[] = {
+ NSPAIR(_ZN7ee01130C1Ev),
+ NSPAIR(_ZN7ee01130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+extern Class_Descriptor cd_dd1130;
+extern VTBL_ENTRY _ZTI6dd1130[];
+extern VTBL_ENTRY _ZTV6dd1130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1130[];
+static Base_Class bases_ee01130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1130, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01130[];
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY vtc_ee01130[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01130[0]),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01130[0]),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee01130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee01130[];
+static VTBL_ENTRY _tg__ZTV6dd1130__7ee01130[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1130[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc130__6dd1130__7ee01130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__6dd1130__7ee01130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc130__7ee01130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc130__7ee01130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__7ee01130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee01130[] = {
+ {&(_ZTV7ee01130[5]), 5,14},
+ {&(_tg__ZTV6dd1130__7ee01130[5]), 5,5},
+ {&(_tg__ZTV5cc130__6dd1130__7ee01130[4]), 4,4},
+ {&(_tg__ZTV4bb30__6dd1130__7ee01130[4]), 4,5},
+ {&(_ZTV7ee01130[9]), 9,14},
+ {&(_ZTV7ee01130[13]), 13,14},
+ {&(_tg__ZTV5cc130__7ee01130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc130__7ee01130[4]), 4,5},
+ {&(_tg__ZTV4bb30__7ee01130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee01130[];
+extern VTBL_ENTRY _ZTV7ee01130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01130[];
+Class_Descriptor cd_ee01130 = { "ee01130", // class name
+ bases_ee01130, 4,
+ &(vtc_ee01130[0]), // expected_vtbl_contents
+ &(vtt_ee01130[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee01130),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01130),14, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01130),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee11130 : virtual dd1130 {
+ int e;
+ ~ee11130(); // tgen
+ ee11130(); // tgen
+};
+//SIG(1 ee11130) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} Fi} Fi}
+
+
+ee11130 ::~ee11130(){ note_dtor("ee11130", this);} // tgen
+ee11130 ::ee11130(){ note_ctor("ee11130", this);} // tgen
+
+static void Test_ee11130()
+{
+ extern Class_Descriptor cd_ee11130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee11130, buf);
+ ee11130 *dp, &lv = *(dp=new (buf) ee11130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee11130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(60,32), "ee11130");
+ check_base_class_offset(lv, (bb30*)(cc130*), ABISELECT(48,24), "ee11130");
+ check_base_class_offset(lv, (cc130*)(dd1130*), ABISELECT(32,16), "ee11130");
+ check_base_class_offset(lv, (dd1130*), ABISELECT(16,8), "ee11130");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11130.e");
+ test_class_info(&lv, &cd_ee11130);
+ dp->~ee11130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11130(Test_ee11130, "ee11130", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee11130C1Ev();
+extern void _ZN7ee11130D1Ev();
+Name_Map name_map_ee11130[] = {
+ NSPAIR(_ZN7ee11130C1Ev),
+ NSPAIR(_ZN7ee11130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+extern Class_Descriptor cd_dd1130;
+extern VTBL_ENTRY _ZTI6dd1130[];
+extern VTBL_ENTRY _ZTV6dd1130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1130[];
+static Base_Class bases_ee11130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,32), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(48,24), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1130, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee11130[];
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY vtc_ee11130[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11130[0]),
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11130[0]),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11130[0]),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee11130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee11130[];
+static VTBL_ENTRY _tg__ZTV6dd1130__7ee11130[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1130[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc130__6dd1130__7ee11130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__6dd1130__7ee11130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc130__7ee11130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc130__7ee11130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__7ee11130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee11130[] = {
+ {&(_ZTV7ee11130[6]), 6,20},
+ {&(_ZTV7ee11130[11]), 11,20},
+ {&(_ZTV7ee11130[15]), 15,20},
+ {&(_ZTV7ee11130[19]), 19,20},
+ {&(_tg__ZTV6dd1130__7ee11130[5]), 5,5},
+ {&(_tg__ZTV5cc130__6dd1130__7ee11130[4]), 4,4},
+ {&(_tg__ZTV4bb30__6dd1130__7ee11130[4]), 4,5},
+ {&(_tg__ZTV5cc130__7ee11130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc130__7ee11130[4]), 4,5},
+ {&(_tg__ZTV4bb30__7ee11130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee11130[];
+extern VTBL_ENTRY _ZTV7ee11130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11130[];
+Class_Descriptor cd_ee11130 = { "ee11130", // class name
+ bases_ee11130, 4,
+ &(vtc_ee11130[0]), // expected_vtbl_contents
+ &(vtt_ee11130[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee11130),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11130),20, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11130),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee21130 : dd1130 {
+ int e;
+ virtual void foo(); // _ZN7ee211303fooEv
+ ~ee21130(); // tgen
+ ee21130(); // tgen
+};
+//SIG(1 ee21130) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee21130 ::foo(){vfunc_called(this, "_ZN7ee211303fooEv");}
+ee21130 ::~ee21130(){ note_dtor("ee21130", this);} // tgen
+ee21130 ::ee21130(){ note_ctor("ee21130", this);} // tgen
+
+static void Test_ee21130()
+{
+ extern Class_Descriptor cd_ee21130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee21130, buf);
+ ee21130 *dp, &lv = *(dp=new (buf) ee21130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee21130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(44,28), "ee21130");
+ check_base_class_offset(lv, (bb30*)(cc130*), ABISELECT(32,20), "ee21130");
+ check_base_class_offset(lv, (cc130*)(dd1130*), ABISELECT(16,12), "ee21130");
+ check_base_class_offset(lv, (dd1130*), 0, "ee21130");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21130.e");
+ test_class_info(&lv, &cd_ee21130);
+ dp->~ee21130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21130(Test_ee21130, "ee21130", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee21130C1Ev();
+extern void _ZN7ee21130D1Ev();
+Name_Map name_map_ee21130[] = {
+ NSPAIR(_ZN7ee21130C1Ev),
+ NSPAIR(_ZN7ee21130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+extern Class_Descriptor cd_dd1130;
+extern VTBL_ENTRY _ZTI6dd1130[];
+extern VTBL_ENTRY _ZTV6dd1130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1130[];
+static Base_Class bases_ee21130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1130, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21130[];
+extern void _ZN7ee211303fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee211303fooEv,_ZTv0_n16_N7ee211303fooEv)();
+extern void ABISELECT(_ZThn32_N7ee211303fooEv,_ZThn20_N7ee211303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee21130[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21130[0]),
+ (VTBL_ENTRY)&_ZN7ee211303fooEv,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21130[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee21130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee211303fooEv,_ZTv0_n16_N7ee211303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee21130[];
+static VTBL_ENTRY _tg__ZTV6dd1130__7ee21130[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1130[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc130__6dd1130__7ee21130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__6dd1130__7ee21130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc130__7ee21130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc130__7ee21130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__7ee21130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee21130[] = {
+ {&(_ZTV7ee21130[5]), 5,15},
+ {&(_tg__ZTV6dd1130__7ee21130[5]), 5,5},
+ {&(_tg__ZTV5cc130__6dd1130__7ee21130[4]), 4,4},
+ {&(_tg__ZTV4bb30__6dd1130__7ee21130[4]), 4,5},
+ {&(_ZTV7ee21130[10]), 10,15},
+ {&(_ZTV7ee21130[14]), 14,15},
+ {&(_tg__ZTV5cc130__7ee21130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc130__7ee21130[4]), 4,5},
+ {&(_tg__ZTV4bb30__7ee21130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee21130[];
+extern VTBL_ENTRY _ZTV7ee21130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21130[];
+static VTBL_ENTRY alt_thunk_names42[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee211303fooEv,_ZTv0_n16_N7ee211303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee211303fooEv,_ZThn20_N7ee211303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21130 = { "ee21130", // class name
+ bases_ee21130, 4,
+ &(vtc_ee21130[0]), // expected_vtbl_contents
+ &(vtt_ee21130[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee21130),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21130),15, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21130),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names42,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31130 : virtual dd1130 {
+ int e;
+ virtual void foo(); // _ZN7ee311303fooEv
+ ~ee31130(); // tgen
+ ee31130(); // tgen
+};
+//SIG(1 ee31130) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee31130 ::foo(){vfunc_called(this, "_ZN7ee311303fooEv");}
+ee31130 ::~ee31130(){ note_dtor("ee31130", this);} // tgen
+ee31130 ::ee31130(){ note_ctor("ee31130", this);} // tgen
+
+static void Test_ee31130()
+{
+ extern Class_Descriptor cd_ee31130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee31130, buf);
+ ee31130 *dp, &lv = *(dp=new (buf) ee31130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee31130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(60,32), "ee31130");
+ check_base_class_offset(lv, (bb30*)(cc130*), ABISELECT(48,24), "ee31130");
+ check_base_class_offset(lv, (cc130*)(dd1130*), ABISELECT(32,16), "ee31130");
+ check_base_class_offset(lv, (dd1130*), ABISELECT(16,8), "ee31130");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31130.e");
+ test_class_info(&lv, &cd_ee31130);
+ dp->~ee31130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31130(Test_ee31130, "ee31130", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee31130C1Ev();
+extern void _ZN7ee31130D1Ev();
+Name_Map name_map_ee31130[] = {
+ NSPAIR(_ZN7ee31130C1Ev),
+ NSPAIR(_ZN7ee31130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+extern Class_Descriptor cd_dd1130;
+extern VTBL_ENTRY _ZTI6dd1130[];
+extern VTBL_ENTRY _ZTV6dd1130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1130[];
+static Base_Class bases_ee31130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,32), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1130, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee31130[];
+extern void _ZN7ee311303fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee311303fooEv,_ZTv0_n16_N7ee311303fooEv)();
+extern void ABISELECT(_ZThn48_N7ee311303fooEv,_ZThn24_N7ee311303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee31130[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31130[0]),
+ (VTBL_ENTRY)&_ZN7ee311303fooEv,
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31130[0]),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31130[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee31130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee311303fooEv,_ZTv0_n16_N7ee311303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee31130[];
+static VTBL_ENTRY _tg__ZTV6dd1130__7ee31130[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1130[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc130__6dd1130__7ee31130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__6dd1130__7ee31130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc130__7ee31130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc130__7ee31130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__7ee31130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee31130[] = {
+ {&(_ZTV7ee31130[6]), 6,21},
+ {&(_ZTV7ee31130[12]), 12,21},
+ {&(_ZTV7ee31130[16]), 16,21},
+ {&(_ZTV7ee31130[20]), 20,21},
+ {&(_tg__ZTV6dd1130__7ee31130[5]), 5,5},
+ {&(_tg__ZTV5cc130__6dd1130__7ee31130[4]), 4,4},
+ {&(_tg__ZTV4bb30__6dd1130__7ee31130[4]), 4,5},
+ {&(_tg__ZTV5cc130__7ee31130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc130__7ee31130[4]), 4,5},
+ {&(_tg__ZTV4bb30__7ee31130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee31130[];
+extern VTBL_ENTRY _ZTV7ee31130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31130[];
+static VTBL_ENTRY alt_thunk_names43[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee311303fooEv,_ZTv0_n16_N7ee311303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee311303fooEv,_ZThn24_N7ee311303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31130 = { "ee31130", // class name
+ bases_ee31130, 4,
+ &(vtc_ee31130[0]), // expected_vtbl_contents
+ &(vtt_ee31130[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee31130),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31130),21, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31130),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names43,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41130 : dd1130 {
+ int e;
+ virtual void bar(); // _ZN7ee411303barEv
+ ~ee41130(); // tgen
+ ee41130(); // tgen
+};
+//SIG(1 ee41130) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee41130 ::bar(){vfunc_called(this, "_ZN7ee411303barEv");}
+ee41130 ::~ee41130(){ note_dtor("ee41130", this);} // tgen
+ee41130 ::ee41130(){ note_ctor("ee41130", this);} // tgen
+
+static void Test_ee41130()
+{
+ extern Class_Descriptor cd_ee41130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee41130, buf);
+ ee41130 *dp, &lv = *(dp=new (buf) ee41130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee41130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(44,28), "ee41130");
+ check_base_class_offset(lv, (bb30*)(cc130*), ABISELECT(32,20), "ee41130");
+ check_base_class_offset(lv, (cc130*)(dd1130*), ABISELECT(16,12), "ee41130");
+ check_base_class_offset(lv, (dd1130*), 0, "ee41130");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41130.e");
+ test_class_info(&lv, &cd_ee41130);
+ dp->~ee41130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41130(Test_ee41130, "ee41130", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee41130C1Ev();
+extern void _ZN7ee41130D1Ev();
+Name_Map name_map_ee41130[] = {
+ NSPAIR(_ZN7ee41130C1Ev),
+ NSPAIR(_ZN7ee41130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+extern Class_Descriptor cd_dd1130;
+extern VTBL_ENTRY _ZTI6dd1130[];
+extern VTBL_ENTRY _ZTV6dd1130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1130[];
+static Base_Class bases_ee41130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1130, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41130[];
+extern void _ZN7ee411303barEv();
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY vtc_ee41130[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41130[0]),
+ (VTBL_ENTRY)&_ZN7ee411303barEv,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41130[0]),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee41130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee41130[];
+static VTBL_ENTRY _tg__ZTV6dd1130__7ee41130[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1130[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc130__6dd1130__7ee41130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__6dd1130__7ee41130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc130__7ee41130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc130__7ee41130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__7ee41130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee41130[] = {
+ {&(_ZTV7ee41130[5]), 5,15},
+ {&(_tg__ZTV6dd1130__7ee41130[5]), 5,5},
+ {&(_tg__ZTV5cc130__6dd1130__7ee41130[4]), 4,4},
+ {&(_tg__ZTV4bb30__6dd1130__7ee41130[4]), 4,5},
+ {&(_ZTV7ee41130[10]), 10,15},
+ {&(_ZTV7ee41130[14]), 14,15},
+ {&(_tg__ZTV5cc130__7ee41130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc130__7ee41130[4]), 4,5},
+ {&(_tg__ZTV4bb30__7ee41130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee41130[];
+extern VTBL_ENTRY _ZTV7ee41130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41130[];
+Class_Descriptor cd_ee41130 = { "ee41130", // class name
+ bases_ee41130, 4,
+ &(vtc_ee41130[0]), // expected_vtbl_contents
+ &(vtt_ee41130[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee41130),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41130),15, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41130),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51130 : virtual dd1130 {
+ int e;
+ virtual void bar(); // _ZN7ee511303barEv
+ ~ee51130(); // tgen
+ ee51130(); // tgen
+};
+//SIG(1 ee51130) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee51130 ::bar(){vfunc_called(this, "_ZN7ee511303barEv");}
+ee51130 ::~ee51130(){ note_dtor("ee51130", this);} // tgen
+ee51130 ::ee51130(){ note_ctor("ee51130", this);} // tgen
+
+static void Test_ee51130()
+{
+ extern Class_Descriptor cd_ee51130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee51130, buf);
+ ee51130 *dp, &lv = *(dp=new (buf) ee51130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee51130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(60,32), "ee51130");
+ check_base_class_offset(lv, (bb30*)(cc130*), ABISELECT(48,24), "ee51130");
+ check_base_class_offset(lv, (cc130*)(dd1130*), ABISELECT(32,16), "ee51130");
+ check_base_class_offset(lv, (dd1130*), ABISELECT(16,8), "ee51130");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51130.e");
+ test_class_info(&lv, &cd_ee51130);
+ dp->~ee51130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51130(Test_ee51130, "ee51130", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee51130C1Ev();
+extern void _ZN7ee51130D1Ev();
+Name_Map name_map_ee51130[] = {
+ NSPAIR(_ZN7ee51130C1Ev),
+ NSPAIR(_ZN7ee51130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+extern Class_Descriptor cd_dd1130;
+extern VTBL_ENTRY _ZTI6dd1130[];
+extern VTBL_ENTRY _ZTV6dd1130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1130[];
+static Base_Class bases_ee51130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,32), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1130, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee51130[];
+extern void _ZN7ee511303barEv();
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY vtc_ee51130[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51130[0]),
+ (VTBL_ENTRY)&_ZN7ee511303barEv,
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51130[0]),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51130[0]),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee51130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee51130[];
+static VTBL_ENTRY _tg__ZTV6dd1130__7ee51130[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1130[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc130__6dd1130__7ee51130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__6dd1130__7ee51130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc130__7ee51130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc130__7ee51130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__7ee51130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee51130[] = {
+ {&(_ZTV7ee51130[6]), 6,21},
+ {&(_ZTV7ee51130[12]), 12,21},
+ {&(_ZTV7ee51130[16]), 16,21},
+ {&(_ZTV7ee51130[20]), 20,21},
+ {&(_tg__ZTV6dd1130__7ee51130[5]), 5,5},
+ {&(_tg__ZTV5cc130__6dd1130__7ee51130[4]), 4,4},
+ {&(_tg__ZTV4bb30__6dd1130__7ee51130[4]), 4,5},
+ {&(_tg__ZTV5cc130__7ee51130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc130__7ee51130[4]), 4,5},
+ {&(_tg__ZTV4bb30__7ee51130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee51130[];
+extern VTBL_ENTRY _ZTV7ee51130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51130[];
+Class_Descriptor cd_ee51130 = { "ee51130", // class name
+ bases_ee51130, 4,
+ &(vtc_ee51130[0]), // expected_vtbl_contents
+ &(vtt_ee51130[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee51130),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51130),21, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51130),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61130 : dd1130 {
+ int e;
+ virtual void foo(); // _ZN7ee611303fooEv
+ virtual void bar(); // _ZN7ee611303barEv
+ ~ee61130(); // tgen
+ ee61130(); // tgen
+};
+//SIG(1 ee61130) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee61130 ::foo(){vfunc_called(this, "_ZN7ee611303fooEv");}
+void ee61130 ::bar(){vfunc_called(this, "_ZN7ee611303barEv");}
+ee61130 ::~ee61130(){ note_dtor("ee61130", this);} // tgen
+ee61130 ::ee61130(){ note_ctor("ee61130", this);} // tgen
+
+static void Test_ee61130()
+{
+ extern Class_Descriptor cd_ee61130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee61130, buf);
+ ee61130 *dp, &lv = *(dp=new (buf) ee61130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee61130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(44,28), "ee61130");
+ check_base_class_offset(lv, (bb30*)(cc130*), ABISELECT(32,20), "ee61130");
+ check_base_class_offset(lv, (cc130*)(dd1130*), ABISELECT(16,12), "ee61130");
+ check_base_class_offset(lv, (dd1130*), 0, "ee61130");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61130.e");
+ test_class_info(&lv, &cd_ee61130);
+ dp->~ee61130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61130(Test_ee61130, "ee61130", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee61130C1Ev();
+extern void _ZN7ee61130D1Ev();
+Name_Map name_map_ee61130[] = {
+ NSPAIR(_ZN7ee61130C1Ev),
+ NSPAIR(_ZN7ee61130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+extern Class_Descriptor cd_dd1130;
+extern VTBL_ENTRY _ZTI6dd1130[];
+extern VTBL_ENTRY _ZTV6dd1130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1130[];
+static Base_Class bases_ee61130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1130, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61130[];
+extern void _ZN7ee611303fooEv();
+extern void _ZN7ee611303barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee611303fooEv,_ZTv0_n16_N7ee611303fooEv)();
+extern void ABISELECT(_ZThn32_N7ee611303fooEv,_ZThn20_N7ee611303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61130[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61130[0]),
+ (VTBL_ENTRY)&_ZN7ee611303fooEv,
+ (VTBL_ENTRY)&_ZN7ee611303barEv,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61130[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee61130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee611303fooEv,_ZTv0_n16_N7ee611303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee61130[];
+static VTBL_ENTRY _tg__ZTV6dd1130__7ee61130[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1130[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc130__6dd1130__7ee61130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__6dd1130__7ee61130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc130__7ee61130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc130__7ee61130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__7ee61130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee61130[] = {
+ {&(_ZTV7ee61130[5]), 5,16},
+ {&(_tg__ZTV6dd1130__7ee61130[5]), 5,5},
+ {&(_tg__ZTV5cc130__6dd1130__7ee61130[4]), 4,4},
+ {&(_tg__ZTV4bb30__6dd1130__7ee61130[4]), 4,5},
+ {&(_ZTV7ee61130[11]), 11,16},
+ {&(_ZTV7ee61130[15]), 15,16},
+ {&(_tg__ZTV5cc130__7ee61130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc130__7ee61130[4]), 4,5},
+ {&(_tg__ZTV4bb30__7ee61130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee61130[];
+extern VTBL_ENTRY _ZTV7ee61130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61130[];
+static VTBL_ENTRY alt_thunk_names44[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee611303fooEv,_ZTv0_n16_N7ee611303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee611303fooEv,_ZThn20_N7ee611303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61130 = { "ee61130", // class name
+ bases_ee61130, 4,
+ &(vtc_ee61130[0]), // expected_vtbl_contents
+ &(vtt_ee61130[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee61130),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61130),16, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61130),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names44,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71130 : virtual dd1130 {
+ int e;
+ virtual void foo(); // _ZN7ee711303fooEv
+ virtual void bar(); // _ZN7ee711303barEv
+ ~ee71130(); // tgen
+ ee71130(); // tgen
+};
+//SIG(1 ee71130) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee71130 ::foo(){vfunc_called(this, "_ZN7ee711303fooEv");}
+void ee71130 ::bar(){vfunc_called(this, "_ZN7ee711303barEv");}
+ee71130 ::~ee71130(){ note_dtor("ee71130", this);} // tgen
+ee71130 ::ee71130(){ note_ctor("ee71130", this);} // tgen
+
+static void Test_ee71130()
+{
+ extern Class_Descriptor cd_ee71130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee71130, buf);
+ ee71130 *dp, &lv = *(dp=new (buf) ee71130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee71130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(60,32), "ee71130");
+ check_base_class_offset(lv, (bb30*)(cc130*), ABISELECT(48,24), "ee71130");
+ check_base_class_offset(lv, (cc130*)(dd1130*), ABISELECT(32,16), "ee71130");
+ check_base_class_offset(lv, (dd1130*), ABISELECT(16,8), "ee71130");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71130.e");
+ test_class_info(&lv, &cd_ee71130);
+ dp->~ee71130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71130(Test_ee71130, "ee71130", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee71130C1Ev();
+extern void _ZN7ee71130D1Ev();
+Name_Map name_map_ee71130[] = {
+ NSPAIR(_ZN7ee71130C1Ev),
+ NSPAIR(_ZN7ee71130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+extern Class_Descriptor cd_dd1130;
+extern VTBL_ENTRY _ZTI6dd1130[];
+extern VTBL_ENTRY _ZTV6dd1130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1130[];
+static Base_Class bases_ee71130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,32), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1130, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee71130[];
+extern void _ZN7ee711303fooEv();
+extern void _ZN7ee711303barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee711303fooEv,_ZTv0_n16_N7ee711303fooEv)();
+extern void ABISELECT(_ZThn48_N7ee711303fooEv,_ZThn24_N7ee711303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71130[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71130[0]),
+ (VTBL_ENTRY)&_ZN7ee711303fooEv,
+ (VTBL_ENTRY)&_ZN7ee711303barEv,
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71130[0]),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71130[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee71130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee711303fooEv,_ZTv0_n16_N7ee711303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee71130[];
+static VTBL_ENTRY _tg__ZTV6dd1130__7ee71130[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1130[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc130__6dd1130__7ee71130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__6dd1130__7ee71130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc130__7ee71130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc130__7ee71130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__7ee71130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee71130[] = {
+ {&(_ZTV7ee71130[6]), 6,22},
+ {&(_ZTV7ee71130[13]), 13,22},
+ {&(_ZTV7ee71130[17]), 17,22},
+ {&(_ZTV7ee71130[21]), 21,22},
+ {&(_tg__ZTV6dd1130__7ee71130[5]), 5,5},
+ {&(_tg__ZTV5cc130__6dd1130__7ee71130[4]), 4,4},
+ {&(_tg__ZTV4bb30__6dd1130__7ee71130[4]), 4,5},
+ {&(_tg__ZTV5cc130__7ee71130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc130__7ee71130[4]), 4,5},
+ {&(_tg__ZTV4bb30__7ee71130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee71130[];
+extern VTBL_ENTRY _ZTV7ee71130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71130[];
+static VTBL_ENTRY alt_thunk_names45[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee711303fooEv,_ZTv0_n16_N7ee711303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee711303fooEv,_ZThn24_N7ee711303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71130 = { "ee71130", // class name
+ bases_ee71130, 4,
+ &(vtc_ee71130[0]), // expected_vtbl_contents
+ &(vtt_ee71130[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee71130),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71130),22, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71130),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names45,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2130 : cc130 {
+ int d;
+ virtual void foo(); // _ZN6dd21303fooEv
+ ~dd2130(); // tgen
+ dd2130(); // tgen
+};
+//SIG(-1 dd2130) C1{ BC2{ VBC3{ VBC4{ Fi} v1 Fi} Fi} v1 Fi}
+
+
+void dd2130 ::foo(){vfunc_called(this, "_ZN6dd21303fooEv");}
+dd2130 ::~dd2130(){ note_dtor("dd2130", this);} // tgen
+dd2130 ::dd2130(){ note_ctor("dd2130", this);} // tgen
+
+static void Test_dd2130()
+{
+ extern Class_Descriptor cd_dd2130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd2130, buf);
+ dd2130 *dp, &lv = *(dp=new (buf) dd2130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd2130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(28,20), "dd2130");
+ check_base_class_offset(lv, (bb30*)(cc130*), ABISELECT(16,12), "dd2130");
+ check_base_class_offset(lv, (cc130*), 0, "dd2130");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd2130.d");
+ test_class_info(&lv, &cd_dd2130);
+ dp->~dd2130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2130(Test_dd2130, "dd2130", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd2130C1Ev();
+extern void _ZN6dd2130D1Ev();
+Name_Map name_map_dd2130[] = {
+ NSPAIR(_ZN6dd2130C1Ev),
+ NSPAIR(_ZN6dd2130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+static Base_Class bases_dd2130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd2130[];
+extern void _ZN6dd21303fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd21303fooEv,_ZTv0_n16_N6dd21303fooEv)();
+extern void ABISELECT(_ZThn16_N6dd21303fooEv,_ZThn12_N6dd21303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd2130[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2130[0]),
+ (VTBL_ENTRY)&_ZN6dd21303fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd21303fooEv,_ZTv0_n16_N6dd21303fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd2130[];
+static VTBL_ENTRY _tg__ZTV5cc130__6dd2130[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc130__6dd2130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__6dd2130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_dd2130[] = {
+ {&(_ZTV6dd2130[4]), 4,10},
+ {&(_tg__ZTV5cc130__6dd2130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc130__6dd2130[4]), 4,5},
+ {&(_ZTV6dd2130[9]), 9,10},
+ {&(_tg__ZTV4bb30__6dd2130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd2130[];
+extern VTBL_ENTRY _ZTV6dd2130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2130[];
+static VTBL_ENTRY alt_thunk_names46[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd21303fooEv,_ZTv0_n16_N6dd21303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd21303fooEv,_ZThn12_N6dd21303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd2130 = { "dd2130", // class name
+ bases_dd2130, 3,
+ &(vtc_dd2130[0]), // expected_vtbl_contents
+ &(vtt_dd2130[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd2130),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2130),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd2130),5, //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 ee02130 : dd2130 {
+ int e;
+ ~ee02130(); // tgen
+ ee02130(); // tgen
+};
+//SIG(1 ee02130) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee02130 ::~ee02130(){ note_dtor("ee02130", this);} // tgen
+ee02130 ::ee02130(){ note_ctor("ee02130", this);} // tgen
+
+static void Test_ee02130()
+{
+ extern Class_Descriptor cd_ee02130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee02130, buf);
+ ee02130 *dp, &lv = *(dp=new (buf) ee02130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee02130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(36,24), "ee02130");
+ check_base_class_offset(lv, (bb30*)(cc130*)(dd2130*), ABISELECT(24,16), "ee02130");
+ check_base_class_offset(lv, (cc130*)(dd2130*), 0, "ee02130");
+ check_base_class_offset(lv, (dd2130*), 0, "ee02130");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee02130.e");
+ test_class_info(&lv, &cd_ee02130);
+ dp->~ee02130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02130(Test_ee02130, "ee02130", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee02130C1Ev();
+extern void _ZN7ee02130D1Ev();
+Name_Map name_map_ee02130[] = {
+ NSPAIR(_ZN7ee02130C1Ev),
+ NSPAIR(_ZN7ee02130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+extern Class_Descriptor cd_dd2130;
+extern VTBL_ENTRY _ZTI6dd2130[];
+extern VTBL_ENTRY _ZTV6dd2130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2130[];
+static Base_Class bases_ee02130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2130, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02130[];
+extern void _ZN6dd21303fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd21303fooEv,_ZTv0_n16_N6dd21303fooEv)();
+extern void ABISELECT(_ZThn24_N6dd21303fooEv,_ZThn16_N6dd21303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee02130[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02130[0]),
+ (VTBL_ENTRY)&_ZN6dd21303fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee02130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd21303fooEv,_ZTv0_n16_N6dd21303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee02130[];
+extern void _ZN6dd21303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2130__7ee02130[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2130[0]),
+ (VTBL_ENTRY)&_ZN6dd21303fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1306dd2130__7ee02130[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc1306dd2130__7ee02130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd21303fooEv,_ZTv0_n16_N6dd21303fooEv)();
+extern void ABISELECT(_ZThn24_N6dd21303fooEv,_ZThn16_N6dd21303fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb30__6dd2130__7ee02130[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd21303fooEv,_ZTv0_n16_N6dd21303fooEv),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__7ee02130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee02130[] = {
+ {&(_ZTV7ee02130[4]), 4,10},
+ {&(_tg__ZTV6dd2130__7ee02130[4]), 4,5},
+ {&(_tg__ZTV5cc1306dd2130__7ee02130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc1306dd2130__7ee02130[4]), 4,5},
+ {&(_tg__ZTV4bb30__6dd2130__7ee02130[4]), 4,5},
+ {&(_ZTV7ee02130[9]), 9,10},
+ {&(_tg__ZTV4bb30__7ee02130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee02130[];
+extern VTBL_ENTRY _ZTV7ee02130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee02130[];
+static VTBL_ENTRY alt_thunk_names47[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd21303fooEv,_ZTv0_n16_N6dd21303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd21303fooEv,_ZThn16_N6dd21303fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd21303fooEv,_ZThn16_N6dd21303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee02130 = { "ee02130", // class name
+ bases_ee02130, 4,
+ &(vtc_ee02130[0]), // expected_vtbl_contents
+ &(vtt_ee02130[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee02130),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02130),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee02130),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names47,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee12130 : virtual dd2130 {
+ int e;
+ ~ee12130(); // tgen
+ ee12130(); // tgen
+};
+//SIG(1 ee12130) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee12130 ::~ee12130(){ note_dtor("ee12130", this);} // tgen
+ee12130 ::ee12130(){ note_ctor("ee12130", this);} // tgen
+
+static void Test_ee12130()
+{
+ extern Class_Descriptor cd_ee12130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee12130, buf);
+ ee12130 *dp, &lv = *(dp=new (buf) ee12130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee12130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(44,28), "ee12130");
+ check_base_class_offset(lv, (bb30*)(cc130*)(dd2130*), ABISELECT(32,20), "ee12130");
+ check_base_class_offset(lv, (cc130*)(dd2130*), ABISELECT(16,8), "ee12130");
+ check_base_class_offset(lv, (dd2130*), ABISELECT(16,8), "ee12130");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12130.e");
+ test_class_info(&lv, &cd_ee12130);
+ dp->~ee12130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12130(Test_ee12130, "ee12130", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee12130C1Ev();
+extern void _ZN7ee12130D1Ev();
+Name_Map name_map_ee12130[] = {
+ NSPAIR(_ZN7ee12130C1Ev),
+ NSPAIR(_ZN7ee12130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+extern Class_Descriptor cd_dd2130;
+extern VTBL_ENTRY _ZTI6dd2130[];
+extern VTBL_ENTRY _ZTV6dd2130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2130[];
+static Base_Class bases_ee12130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2130, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee12130[];
+extern void _ZN6dd21303fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd21303fooEv,_ZTv0_n16_N6dd21303fooEv)();
+extern void ABISELECT(_ZThn16_N6dd21303fooEv,_ZThn12_N6dd21303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee12130[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12130[0]),
+ 0,
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12130[0]),
+ (VTBL_ENTRY)&_ZN6dd21303fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee12130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd21303fooEv,_ZTv0_n16_N6dd21303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee12130[];
+extern void _ZN6dd21303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2130__7ee12130[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2130[0]),
+ (VTBL_ENTRY)&_ZN6dd21303fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1306dd2130__7ee12130[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc1306dd2130__7ee12130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd21303fooEv,_ZTv0_n16_N6dd21303fooEv)();
+extern void ABISELECT(_ZThn16_N6dd21303fooEv,_ZThn12_N6dd21303fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb30__6dd2130__7ee12130[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd21303fooEv,_ZTv0_n16_N6dd21303fooEv),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__7ee12130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee12130[] = {
+ {&(_ZTV7ee12130[5]), 5,16},
+ {&(_ZTV7ee12130[10]), 10,16},
+ {&(_ZTV7ee12130[15]), 15,16},
+ {&(_tg__ZTV6dd2130__7ee12130[4]), 4,5},
+ {&(_tg__ZTV5cc1306dd2130__7ee12130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc1306dd2130__7ee12130[4]), 4,5},
+ {&(_tg__ZTV4bb30__6dd2130__7ee12130[4]), 4,5},
+ {&(_tg__ZTV4bb30__7ee12130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee12130[];
+extern VTBL_ENTRY _ZTV7ee12130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12130[];
+static VTBL_ENTRY alt_thunk_names48[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd21303fooEv,_ZTv0_n16_N6dd21303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd21303fooEv,_ZThn12_N6dd21303fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd21303fooEv,_ZThn12_N6dd21303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee12130 = { "ee12130", // class name
+ bases_ee12130, 4,
+ &(vtc_ee12130[0]), // expected_vtbl_contents
+ &(vtt_ee12130[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee12130),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12130),16, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12130),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names48,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee22130 : dd2130 {
+ int e;
+ virtual void foo(); // _ZN7ee221303fooEv
+ ~ee22130(); // tgen
+ ee22130(); // tgen
+};
+//SIG(1 ee22130) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee22130 ::foo(){vfunc_called(this, "_ZN7ee221303fooEv");}
+ee22130 ::~ee22130(){ note_dtor("ee22130", this);} // tgen
+ee22130 ::ee22130(){ note_ctor("ee22130", this);} // tgen
+
+static void Test_ee22130()
+{
+ extern Class_Descriptor cd_ee22130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee22130, buf);
+ ee22130 *dp, &lv = *(dp=new (buf) ee22130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee22130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(36,24), "ee22130");
+ check_base_class_offset(lv, (bb30*)(cc130*)(dd2130*), ABISELECT(24,16), "ee22130");
+ check_base_class_offset(lv, (cc130*)(dd2130*), 0, "ee22130");
+ check_base_class_offset(lv, (dd2130*), 0, "ee22130");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee22130.e");
+ test_class_info(&lv, &cd_ee22130);
+ dp->~ee22130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22130(Test_ee22130, "ee22130", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee22130C1Ev();
+extern void _ZN7ee22130D1Ev();
+Name_Map name_map_ee22130[] = {
+ NSPAIR(_ZN7ee22130C1Ev),
+ NSPAIR(_ZN7ee22130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+extern Class_Descriptor cd_dd2130;
+extern VTBL_ENTRY _ZTI6dd2130[];
+extern VTBL_ENTRY _ZTV6dd2130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2130[];
+static Base_Class bases_ee22130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2130, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22130[];
+extern void _ZN7ee221303fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee221303fooEv,_ZTv0_n16_N7ee221303fooEv)();
+extern void ABISELECT(_ZThn24_N7ee221303fooEv,_ZThn16_N7ee221303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee22130[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22130[0]),
+ (VTBL_ENTRY)&_ZN7ee221303fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee22130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee221303fooEv,_ZTv0_n16_N7ee221303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee22130[];
+extern void _ZN6dd21303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2130__7ee22130[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2130[0]),
+ (VTBL_ENTRY)&_ZN6dd21303fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1306dd2130__7ee22130[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc1306dd2130__7ee22130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd21303fooEv,_ZTv0_n16_N6dd21303fooEv)();
+extern void ABISELECT(_ZThn24_N6dd21303fooEv,_ZThn16_N6dd21303fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb30__6dd2130__7ee22130[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd21303fooEv,_ZTv0_n16_N6dd21303fooEv),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__7ee22130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee22130[] = {
+ {&(_ZTV7ee22130[4]), 4,10},
+ {&(_tg__ZTV6dd2130__7ee22130[4]), 4,5},
+ {&(_tg__ZTV5cc1306dd2130__7ee22130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc1306dd2130__7ee22130[4]), 4,5},
+ {&(_tg__ZTV4bb30__6dd2130__7ee22130[4]), 4,5},
+ {&(_ZTV7ee22130[9]), 9,10},
+ {&(_tg__ZTV4bb30__7ee22130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee22130[];
+extern VTBL_ENTRY _ZTV7ee22130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee22130[];
+static VTBL_ENTRY alt_thunk_names49[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd21303fooEv,_ZTv0_n16_N6dd21303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd21303fooEv,_ZThn16_N6dd21303fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee221303fooEv,_ZTv0_n16_N7ee221303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee221303fooEv,_ZThn16_N7ee221303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee22130 = { "ee22130", // class name
+ bases_ee22130, 4,
+ &(vtc_ee22130[0]), // expected_vtbl_contents
+ &(vtt_ee22130[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee22130),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22130),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee22130),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names49,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee32130 : virtual dd2130 {
+ int e;
+ virtual void foo(); // _ZN7ee321303fooEv
+ ~ee32130(); // tgen
+ ee32130(); // tgen
+};
+//SIG(1 ee32130) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee32130 ::foo(){vfunc_called(this, "_ZN7ee321303fooEv");}
+ee32130 ::~ee32130(){ note_dtor("ee32130", this);} // tgen
+ee32130 ::ee32130(){ note_ctor("ee32130", this);} // tgen
+
+static void Test_ee32130()
+{
+ extern Class_Descriptor cd_ee32130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee32130, buf);
+ ee32130 *dp, &lv = *(dp=new (buf) ee32130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee32130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(44,28), "ee32130");
+ check_base_class_offset(lv, (bb30*)(cc130*)(dd2130*), ABISELECT(32,20), "ee32130");
+ check_base_class_offset(lv, (cc130*)(dd2130*), ABISELECT(16,8), "ee32130");
+ check_base_class_offset(lv, (dd2130*), ABISELECT(16,8), "ee32130");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32130.e");
+ test_class_info(&lv, &cd_ee32130);
+ dp->~ee32130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32130(Test_ee32130, "ee32130", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee32130C1Ev();
+extern void _ZN7ee32130D1Ev();
+Name_Map name_map_ee32130[] = {
+ NSPAIR(_ZN7ee32130C1Ev),
+ NSPAIR(_ZN7ee32130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+extern Class_Descriptor cd_dd2130;
+extern VTBL_ENTRY _ZTI6dd2130[];
+extern VTBL_ENTRY _ZTV6dd2130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2130[];
+static Base_Class bases_ee32130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2130, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee32130[];
+extern void _ZN7ee321303fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee321303fooEv,_ZTv0_n20_N7ee321303fooEv)();
+extern void ABISELECT(_ZThn16_N7ee321303fooEv,_ZThn8_N7ee321303fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee321303fooEv,_ZTv0_n16_N7ee321303fooEv)();
+extern void ABISELECT(_ZThn32_N7ee321303fooEv,_ZThn20_N7ee321303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32130[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32130[0]),
+ (VTBL_ENTRY)&_ZN7ee321303fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee321303fooEv,_ZTv0_n20_N7ee321303fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee32130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee321303fooEv,_ZTv0_n16_N7ee321303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee32130[];
+extern void _ZN6dd21303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2130__7ee32130[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2130[0]),
+ (VTBL_ENTRY)&_ZN6dd21303fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1306dd2130__7ee32130[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc1306dd2130__7ee32130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd21303fooEv,_ZTv0_n16_N6dd21303fooEv)();
+extern void ABISELECT(_ZThn16_N6dd21303fooEv,_ZThn12_N6dd21303fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb30__6dd2130__7ee32130[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd21303fooEv,_ZTv0_n16_N6dd21303fooEv),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__7ee32130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee32130[] = {
+ {&(_ZTV7ee32130[5]), 5,17},
+ {&(_ZTV7ee32130[11]), 11,17},
+ {&(_ZTV7ee32130[16]), 16,17},
+ {&(_tg__ZTV6dd2130__7ee32130[4]), 4,5},
+ {&(_tg__ZTV5cc1306dd2130__7ee32130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc1306dd2130__7ee32130[4]), 4,5},
+ {&(_tg__ZTV4bb30__6dd2130__7ee32130[4]), 4,5},
+ {&(_tg__ZTV4bb30__7ee32130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee32130[];
+extern VTBL_ENTRY _ZTV7ee32130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32130[];
+static VTBL_ENTRY alt_thunk_names50[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd21303fooEv,_ZTv0_n16_N6dd21303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd21303fooEv,_ZThn12_N6dd21303fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee321303fooEv,_ZTv0_n16_N7ee321303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee321303fooEv,_ZThn20_N7ee321303fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee321303fooEv,_ZTv0_n20_N7ee321303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee321303fooEv,_ZThn8_N7ee321303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32130 = { "ee32130", // class name
+ bases_ee32130, 4,
+ &(vtc_ee32130[0]), // expected_vtbl_contents
+ &(vtt_ee32130[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee32130),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32130),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32130),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names50,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42130 : dd2130 {
+ int e;
+ virtual void bar(); // _ZN7ee421303barEv
+ ~ee42130(); // tgen
+ ee42130(); // tgen
+};
+//SIG(1 ee42130) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee42130 ::bar(){vfunc_called(this, "_ZN7ee421303barEv");}
+ee42130 ::~ee42130(){ note_dtor("ee42130", this);} // tgen
+ee42130 ::ee42130(){ note_ctor("ee42130", this);} // tgen
+
+static void Test_ee42130()
+{
+ extern Class_Descriptor cd_ee42130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee42130, buf);
+ ee42130 *dp, &lv = *(dp=new (buf) ee42130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee42130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(36,24), "ee42130");
+ check_base_class_offset(lv, (bb30*)(cc130*)(dd2130*), ABISELECT(24,16), "ee42130");
+ check_base_class_offset(lv, (cc130*)(dd2130*), 0, "ee42130");
+ check_base_class_offset(lv, (dd2130*), 0, "ee42130");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee42130.e");
+ test_class_info(&lv, &cd_ee42130);
+ dp->~ee42130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42130(Test_ee42130, "ee42130", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee42130C1Ev();
+extern void _ZN7ee42130D1Ev();
+Name_Map name_map_ee42130[] = {
+ NSPAIR(_ZN7ee42130C1Ev),
+ NSPAIR(_ZN7ee42130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+extern Class_Descriptor cd_dd2130;
+extern VTBL_ENTRY _ZTI6dd2130[];
+extern VTBL_ENTRY _ZTV6dd2130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2130[];
+static Base_Class bases_ee42130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2130, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42130[];
+extern void _ZN6dd21303fooEv();
+extern void _ZN7ee421303barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd21303fooEv,_ZTv0_n16_N6dd21303fooEv)();
+extern void ABISELECT(_ZThn24_N6dd21303fooEv,_ZThn16_N6dd21303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee42130[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42130[0]),
+ (VTBL_ENTRY)&_ZN6dd21303fooEv,
+ (VTBL_ENTRY)&_ZN7ee421303barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee42130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd21303fooEv,_ZTv0_n16_N6dd21303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee42130[];
+extern void _ZN6dd21303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2130__7ee42130[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2130[0]),
+ (VTBL_ENTRY)&_ZN6dd21303fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1306dd2130__7ee42130[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc1306dd2130__7ee42130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd21303fooEv,_ZTv0_n16_N6dd21303fooEv)();
+extern void ABISELECT(_ZThn24_N6dd21303fooEv,_ZThn16_N6dd21303fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb30__6dd2130__7ee42130[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd21303fooEv,_ZTv0_n16_N6dd21303fooEv),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__7ee42130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee42130[] = {
+ {&(_ZTV7ee42130[4]), 4,11},
+ {&(_tg__ZTV6dd2130__7ee42130[4]), 4,5},
+ {&(_tg__ZTV5cc1306dd2130__7ee42130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc1306dd2130__7ee42130[4]), 4,5},
+ {&(_tg__ZTV4bb30__6dd2130__7ee42130[4]), 4,5},
+ {&(_ZTV7ee42130[10]), 10,11},
+ {&(_tg__ZTV4bb30__7ee42130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee42130[];
+extern VTBL_ENTRY _ZTV7ee42130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee42130[];
+static VTBL_ENTRY alt_thunk_names51[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd21303fooEv,_ZTv0_n16_N6dd21303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd21303fooEv,_ZThn16_N6dd21303fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd21303fooEv,_ZThn16_N6dd21303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee42130 = { "ee42130", // class name
+ bases_ee42130, 4,
+ &(vtc_ee42130[0]), // expected_vtbl_contents
+ &(vtt_ee42130[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee42130),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42130),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee42130),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names51,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee52130 : virtual dd2130 {
+ int e;
+ virtual void bar(); // _ZN7ee521303barEv
+ ~ee52130(); // tgen
+ ee52130(); // tgen
+};
+//SIG(1 ee52130) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee52130 ::bar(){vfunc_called(this, "_ZN7ee521303barEv");}
+ee52130 ::~ee52130(){ note_dtor("ee52130", this);} // tgen
+ee52130 ::ee52130(){ note_ctor("ee52130", this);} // tgen
+
+static void Test_ee52130()
+{
+ extern Class_Descriptor cd_ee52130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee52130, buf);
+ ee52130 *dp, &lv = *(dp=new (buf) ee52130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee52130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(44,28), "ee52130");
+ check_base_class_offset(lv, (bb30*)(cc130*)(dd2130*), ABISELECT(32,20), "ee52130");
+ check_base_class_offset(lv, (cc130*)(dd2130*), ABISELECT(16,8), "ee52130");
+ check_base_class_offset(lv, (dd2130*), ABISELECT(16,8), "ee52130");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52130.e");
+ test_class_info(&lv, &cd_ee52130);
+ dp->~ee52130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52130(Test_ee52130, "ee52130", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee52130C1Ev();
+extern void _ZN7ee52130D1Ev();
+Name_Map name_map_ee52130[] = {
+ NSPAIR(_ZN7ee52130C1Ev),
+ NSPAIR(_ZN7ee52130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+extern Class_Descriptor cd_dd2130;
+extern VTBL_ENTRY _ZTI6dd2130[];
+extern VTBL_ENTRY _ZTV6dd2130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2130[];
+static Base_Class bases_ee52130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2130, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee52130[];
+extern void _ZN7ee521303barEv();
+extern void _ZN6dd21303fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd21303fooEv,_ZTv0_n16_N6dd21303fooEv)();
+extern void ABISELECT(_ZThn16_N6dd21303fooEv,_ZThn12_N6dd21303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52130[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52130[0]),
+ (VTBL_ENTRY)&_ZN7ee521303barEv,
+ 0,
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52130[0]),
+ (VTBL_ENTRY)&_ZN6dd21303fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee52130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd21303fooEv,_ZTv0_n16_N6dd21303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee52130[];
+extern void _ZN6dd21303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2130__7ee52130[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2130[0]),
+ (VTBL_ENTRY)&_ZN6dd21303fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1306dd2130__7ee52130[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc1306dd2130__7ee52130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd21303fooEv,_ZTv0_n16_N6dd21303fooEv)();
+extern void ABISELECT(_ZThn16_N6dd21303fooEv,_ZThn12_N6dd21303fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb30__6dd2130__7ee52130[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd21303fooEv,_ZTv0_n16_N6dd21303fooEv),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__7ee52130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee52130[] = {
+ {&(_ZTV7ee52130[5]), 5,17},
+ {&(_ZTV7ee52130[11]), 11,17},
+ {&(_ZTV7ee52130[16]), 16,17},
+ {&(_tg__ZTV6dd2130__7ee52130[4]), 4,5},
+ {&(_tg__ZTV5cc1306dd2130__7ee52130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc1306dd2130__7ee52130[4]), 4,5},
+ {&(_tg__ZTV4bb30__6dd2130__7ee52130[4]), 4,5},
+ {&(_tg__ZTV4bb30__7ee52130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee52130[];
+extern VTBL_ENTRY _ZTV7ee52130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52130[];
+static VTBL_ENTRY alt_thunk_names52[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd21303fooEv,_ZTv0_n16_N6dd21303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd21303fooEv,_ZThn12_N6dd21303fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd21303fooEv,_ZThn12_N6dd21303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52130 = { "ee52130", // class name
+ bases_ee52130, 4,
+ &(vtc_ee52130[0]), // expected_vtbl_contents
+ &(vtt_ee52130[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee52130),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52130),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52130),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names52,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee62130 : dd2130 {
+ int e;
+ virtual void foo(); // _ZN7ee621303fooEv
+ virtual void bar(); // _ZN7ee621303barEv
+ ~ee62130(); // tgen
+ ee62130(); // tgen
+};
+//SIG(1 ee62130) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62130 ::foo(){vfunc_called(this, "_ZN7ee621303fooEv");}
+void ee62130 ::bar(){vfunc_called(this, "_ZN7ee621303barEv");}
+ee62130 ::~ee62130(){ note_dtor("ee62130", this);} // tgen
+ee62130 ::ee62130(){ note_ctor("ee62130", this);} // tgen
+
+static void Test_ee62130()
+{
+ extern Class_Descriptor cd_ee62130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee62130, buf);
+ ee62130 *dp, &lv = *(dp=new (buf) ee62130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee62130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(36,24), "ee62130");
+ check_base_class_offset(lv, (bb30*)(cc130*)(dd2130*), ABISELECT(24,16), "ee62130");
+ check_base_class_offset(lv, (cc130*)(dd2130*), 0, "ee62130");
+ check_base_class_offset(lv, (dd2130*), 0, "ee62130");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee62130.e");
+ test_class_info(&lv, &cd_ee62130);
+ dp->~ee62130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62130(Test_ee62130, "ee62130", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee62130C1Ev();
+extern void _ZN7ee62130D1Ev();
+Name_Map name_map_ee62130[] = {
+ NSPAIR(_ZN7ee62130C1Ev),
+ NSPAIR(_ZN7ee62130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+extern Class_Descriptor cd_dd2130;
+extern VTBL_ENTRY _ZTI6dd2130[];
+extern VTBL_ENTRY _ZTV6dd2130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2130[];
+static Base_Class bases_ee62130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2130, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62130[];
+extern void _ZN7ee621303fooEv();
+extern void _ZN7ee621303barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee621303fooEv,_ZTv0_n16_N7ee621303fooEv)();
+extern void ABISELECT(_ZThn24_N7ee621303fooEv,_ZThn16_N7ee621303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee62130[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62130[0]),
+ (VTBL_ENTRY)&_ZN7ee621303fooEv,
+ (VTBL_ENTRY)&_ZN7ee621303barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee62130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee621303fooEv,_ZTv0_n16_N7ee621303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee62130[];
+extern void _ZN6dd21303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2130__7ee62130[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2130[0]),
+ (VTBL_ENTRY)&_ZN6dd21303fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1306dd2130__7ee62130[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc1306dd2130__7ee62130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd21303fooEv,_ZTv0_n16_N6dd21303fooEv)();
+extern void ABISELECT(_ZThn24_N6dd21303fooEv,_ZThn16_N6dd21303fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb30__6dd2130__7ee62130[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd21303fooEv,_ZTv0_n16_N6dd21303fooEv),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__7ee62130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee62130[] = {
+ {&(_ZTV7ee62130[4]), 4,11},
+ {&(_tg__ZTV6dd2130__7ee62130[4]), 4,5},
+ {&(_tg__ZTV5cc1306dd2130__7ee62130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc1306dd2130__7ee62130[4]), 4,5},
+ {&(_tg__ZTV4bb30__6dd2130__7ee62130[4]), 4,5},
+ {&(_ZTV7ee62130[10]), 10,11},
+ {&(_tg__ZTV4bb30__7ee62130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee62130[];
+extern VTBL_ENTRY _ZTV7ee62130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee62130[];
+static VTBL_ENTRY alt_thunk_names53[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd21303fooEv,_ZTv0_n16_N6dd21303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd21303fooEv,_ZThn16_N6dd21303fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee621303fooEv,_ZTv0_n16_N7ee621303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee621303fooEv,_ZThn16_N7ee621303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee62130 = { "ee62130", // class name
+ bases_ee62130, 4,
+ &(vtc_ee62130[0]), // expected_vtbl_contents
+ &(vtt_ee62130[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee62130),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62130),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee62130),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names53,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee72130 : virtual dd2130 {
+ int e;
+ virtual void foo(); // _ZN7ee721303fooEv
+ virtual void bar(); // _ZN7ee721303barEv
+ ~ee72130(); // tgen
+ ee72130(); // tgen
+};
+//SIG(1 ee72130) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72130 ::foo(){vfunc_called(this, "_ZN7ee721303fooEv");}
+void ee72130 ::bar(){vfunc_called(this, "_ZN7ee721303barEv");}
+ee72130 ::~ee72130(){ note_dtor("ee72130", this);} // tgen
+ee72130 ::ee72130(){ note_ctor("ee72130", this);} // tgen
+
+static void Test_ee72130()
+{
+ extern Class_Descriptor cd_ee72130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee72130, buf);
+ ee72130 *dp, &lv = *(dp=new (buf) ee72130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee72130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(44,28), "ee72130");
+ check_base_class_offset(lv, (bb30*)(cc130*)(dd2130*), ABISELECT(32,20), "ee72130");
+ check_base_class_offset(lv, (cc130*)(dd2130*), ABISELECT(16,8), "ee72130");
+ check_base_class_offset(lv, (dd2130*), ABISELECT(16,8), "ee72130");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72130.e");
+ test_class_info(&lv, &cd_ee72130);
+ dp->~ee72130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72130(Test_ee72130, "ee72130", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee72130C1Ev();
+extern void _ZN7ee72130D1Ev();
+Name_Map name_map_ee72130[] = {
+ NSPAIR(_ZN7ee72130C1Ev),
+ NSPAIR(_ZN7ee72130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+extern Class_Descriptor cd_dd2130;
+extern VTBL_ENTRY _ZTI6dd2130[];
+extern VTBL_ENTRY _ZTV6dd2130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2130[];
+static Base_Class bases_ee72130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2130, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee72130[];
+extern void _ZN7ee721303fooEv();
+extern void _ZN7ee721303barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee721303fooEv,_ZTv0_n20_N7ee721303fooEv)();
+extern void ABISELECT(_ZThn16_N7ee721303fooEv,_ZThn8_N7ee721303fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee721303fooEv,_ZTv0_n16_N7ee721303fooEv)();
+extern void ABISELECT(_ZThn32_N7ee721303fooEv,_ZThn20_N7ee721303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72130[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72130[0]),
+ (VTBL_ENTRY)&_ZN7ee721303fooEv,
+ (VTBL_ENTRY)&_ZN7ee721303barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee721303fooEv,_ZTv0_n20_N7ee721303fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee72130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee721303fooEv,_ZTv0_n16_N7ee721303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee72130[];
+extern void _ZN6dd21303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2130__7ee72130[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2130[0]),
+ (VTBL_ENTRY)&_ZN6dd21303fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1306dd2130__7ee72130[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc1306dd2130__7ee72130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd21303fooEv,_ZTv0_n16_N6dd21303fooEv)();
+extern void ABISELECT(_ZThn16_N6dd21303fooEv,_ZThn12_N6dd21303fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb30__6dd2130__7ee72130[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd21303fooEv,_ZTv0_n16_N6dd21303fooEv),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__7ee72130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee72130[] = {
+ {&(_ZTV7ee72130[5]), 5,18},
+ {&(_ZTV7ee72130[12]), 12,18},
+ {&(_ZTV7ee72130[17]), 17,18},
+ {&(_tg__ZTV6dd2130__7ee72130[4]), 4,5},
+ {&(_tg__ZTV5cc1306dd2130__7ee72130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc1306dd2130__7ee72130[4]), 4,5},
+ {&(_tg__ZTV4bb30__6dd2130__7ee72130[4]), 4,5},
+ {&(_tg__ZTV4bb30__7ee72130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee72130[];
+extern VTBL_ENTRY _ZTV7ee72130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72130[];
+static VTBL_ENTRY alt_thunk_names54[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd21303fooEv,_ZTv0_n16_N6dd21303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd21303fooEv,_ZThn12_N6dd21303fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee721303fooEv,_ZTv0_n16_N7ee721303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee721303fooEv,_ZThn20_N7ee721303fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee721303fooEv,_ZTv0_n20_N7ee721303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee721303fooEv,_ZThn8_N7ee721303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72130 = { "ee72130", // class name
+ bases_ee72130, 4,
+ &(vtc_ee72130[0]), // expected_vtbl_contents
+ &(vtt_ee72130[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee72130),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72130),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72130),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names54,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3130 : virtual cc130 {
+ int d;
+ virtual void foo(); // _ZN6dd31303fooEv
+ ~dd3130(); // tgen
+ dd3130(); // tgen
+};
+//SIG(-1 dd3130) C1{ VBC2{ VBC3{ VBC4{ Fi} v1 Fi} Fi} v1 Fi}
+
+
+void dd3130 ::foo(){vfunc_called(this, "_ZN6dd31303fooEv");}
+dd3130 ::~dd3130(){ note_dtor("dd3130", this);} // tgen
+dd3130 ::dd3130(){ note_ctor("dd3130", this);} // tgen
+
+static void Test_dd3130()
+{
+ extern Class_Descriptor cd_dd3130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd3130, buf);
+ dd3130 *dp, &lv = *(dp=new (buf) dd3130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd3130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(44,24), "dd3130");
+ check_base_class_offset(lv, (bb30*)(cc130*), ABISELECT(32,16), "dd3130");
+ check_base_class_offset(lv, (cc130*), ABISELECT(16,8), "dd3130");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3130.d");
+ test_class_info(&lv, &cd_dd3130);
+ dp->~dd3130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3130(Test_dd3130, "dd3130", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd3130C1Ev();
+extern void _ZN6dd3130D1Ev();
+Name_Map name_map_dd3130[] = {
+ NSPAIR(_ZN6dd3130C1Ev),
+ NSPAIR(_ZN6dd3130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+static Base_Class bases_dd3130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, 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 _ZTI6dd3130[];
+extern void _ZN6dd31303fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd31303fooEv,_ZTv0_n16_N6dd31303fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31303fooEv,_ZThn16_N6dd31303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd3130[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3130[0]),
+ (VTBL_ENTRY)&_ZN6dd31303fooEv,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3130[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd31303fooEv,_ZTv0_n16_N6dd31303fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd3130[];
+static VTBL_ENTRY _tg__ZTV5cc130__6dd3130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc130__6dd3130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__6dd3130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_dd3130[] = {
+ {&(_ZTV6dd3130[5]), 5,15},
+ {&(_ZTV6dd3130[10]), 10,15},
+ {&(_ZTV6dd3130[14]), 14,15},
+ {&(_tg__ZTV5cc130__6dd3130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc130__6dd3130[4]), 4,5},
+ {&(_tg__ZTV4bb30__6dd3130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd3130[];
+extern VTBL_ENTRY _ZTV6dd3130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3130[];
+static VTBL_ENTRY alt_thunk_names55[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd31303fooEv,_ZTv0_n16_N6dd31303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31303fooEv,_ZThn16_N6dd31303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3130 = { "dd3130", // class name
+ bases_dd3130, 3,
+ &(vtc_dd3130[0]), // expected_vtbl_contents
+ &(vtt_dd3130[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd3130),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3130),15, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3130),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names55,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03130 : dd3130 {
+ int e;
+ ~ee03130(); // tgen
+ ee03130(); // tgen
+};
+//SIG(1 ee03130) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee03130 ::~ee03130(){ note_dtor("ee03130", this);} // tgen
+ee03130 ::ee03130(){ note_ctor("ee03130", this);} // tgen
+
+static void Test_ee03130()
+{
+ extern Class_Descriptor cd_ee03130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee03130, buf);
+ ee03130 *dp, &lv = *(dp=new (buf) ee03130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee03130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(44,28), "ee03130");
+ check_base_class_offset(lv, (bb30*)(cc130*), ABISELECT(32,20), "ee03130");
+ check_base_class_offset(lv, (cc130*)(dd3130*), ABISELECT(16,12), "ee03130");
+ check_base_class_offset(lv, (dd3130*), 0, "ee03130");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03130.e");
+ test_class_info(&lv, &cd_ee03130);
+ dp->~ee03130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03130(Test_ee03130, "ee03130", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee03130C1Ev();
+extern void _ZN7ee03130D1Ev();
+Name_Map name_map_ee03130[] = {
+ NSPAIR(_ZN7ee03130C1Ev),
+ NSPAIR(_ZN7ee03130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+extern Class_Descriptor cd_dd3130;
+extern VTBL_ENTRY _ZTI6dd3130[];
+extern VTBL_ENTRY _ZTV6dd3130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3130[];
+static Base_Class bases_ee03130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3130, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03130[];
+extern void _ZN6dd31303fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd31303fooEv,_ZTv0_n16_N6dd31303fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31303fooEv,_ZThn20_N6dd31303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee03130[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03130[0]),
+ (VTBL_ENTRY)&_ZN6dd31303fooEv,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03130[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee03130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd31303fooEv,_ZTv0_n16_N6dd31303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee03130[];
+extern void _ZN6dd31303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3130__7ee03130[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3130[0]),
+ (VTBL_ENTRY)&_ZN6dd31303fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc130__6dd3130__7ee03130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3130[0]),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd31303fooEv,_ZTv0_n16_N6dd31303fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31303fooEv,_ZThn20_N6dd31303fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb30__6dd3130__7ee03130[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd31303fooEv,_ZTv0_n16_N6dd31303fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc130__7ee03130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc130__7ee03130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__7ee03130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee03130[] = {
+ {&(_ZTV7ee03130[5]), 5,15},
+ {&(_tg__ZTV6dd3130__7ee03130[5]), 5,6},
+ {&(_tg__ZTV5cc130__6dd3130__7ee03130[4]), 4,4},
+ {&(_tg__ZTV4bb30__6dd3130__7ee03130[4]), 4,5},
+ {&(_ZTV7ee03130[10]), 10,15},
+ {&(_ZTV7ee03130[14]), 14,15},
+ {&(_tg__ZTV5cc130__7ee03130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc130__7ee03130[4]), 4,5},
+ {&(_tg__ZTV4bb30__7ee03130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee03130[];
+extern VTBL_ENTRY _ZTV7ee03130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03130[];
+static VTBL_ENTRY alt_thunk_names56[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd31303fooEv,_ZTv0_n16_N6dd31303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31303fooEv,_ZThn20_N6dd31303fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31303fooEv,_ZThn20_N6dd31303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03130 = { "ee03130", // class name
+ bases_ee03130, 4,
+ &(vtc_ee03130[0]), // expected_vtbl_contents
+ &(vtt_ee03130[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee03130),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03130),15, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03130),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names56,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13130 : virtual dd3130 {
+ int e;
+ ~ee13130(); // tgen
+ ee13130(); // tgen
+};
+//SIG(1 ee13130) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee13130 ::~ee13130(){ note_dtor("ee13130", this);} // tgen
+ee13130 ::ee13130(){ note_ctor("ee13130", this);} // tgen
+
+static void Test_ee13130()
+{
+ extern Class_Descriptor cd_ee13130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee13130, buf);
+ ee13130 *dp, &lv = *(dp=new (buf) ee13130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee13130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(60,32), "ee13130");
+ check_base_class_offset(lv, (bb30*)(cc130*), ABISELECT(48,24), "ee13130");
+ check_base_class_offset(lv, (cc130*)(dd3130*), ABISELECT(32,16), "ee13130");
+ check_base_class_offset(lv, (dd3130*), ABISELECT(16,8), "ee13130");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13130.e");
+ test_class_info(&lv, &cd_ee13130);
+ dp->~ee13130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13130(Test_ee13130, "ee13130", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee13130C1Ev();
+extern void _ZN7ee13130D1Ev();
+Name_Map name_map_ee13130[] = {
+ NSPAIR(_ZN7ee13130C1Ev),
+ NSPAIR(_ZN7ee13130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+extern Class_Descriptor cd_dd3130;
+extern VTBL_ENTRY _ZTI6dd3130[];
+extern VTBL_ENTRY _ZTV6dd3130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3130[];
+static Base_Class bases_ee13130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,32), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3130, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee13130[];
+extern void _ZN6dd31303fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd31303fooEv,_ZTv0_n16_N6dd31303fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31303fooEv,_ZThn16_N6dd31303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee13130[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13130[0]),
+ 0,
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13130[0]),
+ (VTBL_ENTRY)&_ZN6dd31303fooEv,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13130[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee13130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd31303fooEv,_ZTv0_n16_N6dd31303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee13130[];
+extern void _ZN6dd31303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3130__7ee13130[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3130[0]),
+ (VTBL_ENTRY)&_ZN6dd31303fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc130__6dd3130__7ee13130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3130[0]),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd31303fooEv,_ZTv0_n16_N6dd31303fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31303fooEv,_ZThn16_N6dd31303fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb30__6dd3130__7ee13130[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd31303fooEv,_ZTv0_n16_N6dd31303fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc130__7ee13130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc130__7ee13130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__7ee13130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee13130[] = {
+ {&(_ZTV7ee13130[6]), 6,22},
+ {&(_ZTV7ee13130[12]), 12,22},
+ {&(_ZTV7ee13130[17]), 17,22},
+ {&(_ZTV7ee13130[21]), 21,22},
+ {&(_tg__ZTV6dd3130__7ee13130[5]), 5,6},
+ {&(_tg__ZTV5cc130__6dd3130__7ee13130[4]), 4,4},
+ {&(_tg__ZTV4bb30__6dd3130__7ee13130[4]), 4,5},
+ {&(_tg__ZTV5cc130__7ee13130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc130__7ee13130[4]), 4,5},
+ {&(_tg__ZTV4bb30__7ee13130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee13130[];
+extern VTBL_ENTRY _ZTV7ee13130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13130[];
+static VTBL_ENTRY alt_thunk_names57[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd31303fooEv,_ZTv0_n16_N6dd31303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31303fooEv,_ZThn16_N6dd31303fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31303fooEv,_ZThn16_N6dd31303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13130 = { "ee13130", // class name
+ bases_ee13130, 4,
+ &(vtc_ee13130[0]), // expected_vtbl_contents
+ &(vtt_ee13130[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee13130),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13130),22, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13130),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names57,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23130 : dd3130 {
+ int e;
+ virtual void foo(); // _ZN7ee231303fooEv
+ ~ee23130(); // tgen
+ ee23130(); // tgen
+};
+//SIG(1 ee23130) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee23130 ::foo(){vfunc_called(this, "_ZN7ee231303fooEv");}
+ee23130 ::~ee23130(){ note_dtor("ee23130", this);} // tgen
+ee23130 ::ee23130(){ note_ctor("ee23130", this);} // tgen
+
+static void Test_ee23130()
+{
+ extern Class_Descriptor cd_ee23130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee23130, buf);
+ ee23130 *dp, &lv = *(dp=new (buf) ee23130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee23130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(44,28), "ee23130");
+ check_base_class_offset(lv, (bb30*)(cc130*), ABISELECT(32,20), "ee23130");
+ check_base_class_offset(lv, (cc130*)(dd3130*), ABISELECT(16,12), "ee23130");
+ check_base_class_offset(lv, (dd3130*), 0, "ee23130");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23130.e");
+ test_class_info(&lv, &cd_ee23130);
+ dp->~ee23130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23130(Test_ee23130, "ee23130", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee23130C1Ev();
+extern void _ZN7ee23130D1Ev();
+Name_Map name_map_ee23130[] = {
+ NSPAIR(_ZN7ee23130C1Ev),
+ NSPAIR(_ZN7ee23130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+extern Class_Descriptor cd_dd3130;
+extern VTBL_ENTRY _ZTI6dd3130[];
+extern VTBL_ENTRY _ZTV6dd3130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3130[];
+static Base_Class bases_ee23130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3130, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23130[];
+extern void _ZN7ee231303fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee231303fooEv,_ZTv0_n16_N7ee231303fooEv)();
+extern void ABISELECT(_ZThn32_N7ee231303fooEv,_ZThn20_N7ee231303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee23130[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23130[0]),
+ (VTBL_ENTRY)&_ZN7ee231303fooEv,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23130[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee23130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee231303fooEv,_ZTv0_n16_N7ee231303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee23130[];
+extern void _ZN6dd31303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3130__7ee23130[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3130[0]),
+ (VTBL_ENTRY)&_ZN6dd31303fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc130__6dd3130__7ee23130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3130[0]),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd31303fooEv,_ZTv0_n16_N6dd31303fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31303fooEv,_ZThn20_N6dd31303fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb30__6dd3130__7ee23130[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd31303fooEv,_ZTv0_n16_N6dd31303fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc130__7ee23130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc130__7ee23130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__7ee23130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee23130[] = {
+ {&(_ZTV7ee23130[5]), 5,15},
+ {&(_tg__ZTV6dd3130__7ee23130[5]), 5,6},
+ {&(_tg__ZTV5cc130__6dd3130__7ee23130[4]), 4,4},
+ {&(_tg__ZTV4bb30__6dd3130__7ee23130[4]), 4,5},
+ {&(_ZTV7ee23130[10]), 10,15},
+ {&(_ZTV7ee23130[14]), 14,15},
+ {&(_tg__ZTV5cc130__7ee23130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc130__7ee23130[4]), 4,5},
+ {&(_tg__ZTV4bb30__7ee23130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee23130[];
+extern VTBL_ENTRY _ZTV7ee23130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23130[];
+static VTBL_ENTRY alt_thunk_names58[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd31303fooEv,_ZTv0_n16_N6dd31303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31303fooEv,_ZThn20_N6dd31303fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee231303fooEv,_ZTv0_n16_N7ee231303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee231303fooEv,_ZThn20_N7ee231303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23130 = { "ee23130", // class name
+ bases_ee23130, 4,
+ &(vtc_ee23130[0]), // expected_vtbl_contents
+ &(vtt_ee23130[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee23130),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23130),15, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23130),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names58,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33130 : virtual dd3130 {
+ int e;
+ virtual void foo(); // _ZN7ee331303fooEv
+ ~ee33130(); // tgen
+ ee33130(); // tgen
+};
+//SIG(1 ee33130) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee33130 ::foo(){vfunc_called(this, "_ZN7ee331303fooEv");}
+ee33130 ::~ee33130(){ note_dtor("ee33130", this);} // tgen
+ee33130 ::ee33130(){ note_ctor("ee33130", this);} // tgen
+
+static void Test_ee33130()
+{
+ extern Class_Descriptor cd_ee33130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee33130, buf);
+ ee33130 *dp, &lv = *(dp=new (buf) ee33130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee33130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(60,32), "ee33130");
+ check_base_class_offset(lv, (bb30*)(cc130*), ABISELECT(48,24), "ee33130");
+ check_base_class_offset(lv, (cc130*)(dd3130*), ABISELECT(32,16), "ee33130");
+ check_base_class_offset(lv, (dd3130*), ABISELECT(16,8), "ee33130");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33130.e");
+ test_class_info(&lv, &cd_ee33130);
+ dp->~ee33130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33130(Test_ee33130, "ee33130", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee33130C1Ev();
+extern void _ZN7ee33130D1Ev();
+Name_Map name_map_ee33130[] = {
+ NSPAIR(_ZN7ee33130C1Ev),
+ NSPAIR(_ZN7ee33130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+extern Class_Descriptor cd_dd3130;
+extern VTBL_ENTRY _ZTI6dd3130[];
+extern VTBL_ENTRY _ZTV6dd3130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3130[];
+static Base_Class bases_ee33130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,32), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3130, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee33130[];
+extern void _ZN7ee331303fooEv();
+extern void ABISELECT(_ZTv0_n48_N7ee331303fooEv,_ZTv0_n24_N7ee331303fooEv)();
+extern void ABISELECT(_ZThn16_N7ee331303fooEv,_ZThn8_N7ee331303fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee331303fooEv,_ZTv0_n16_N7ee331303fooEv)();
+extern void ABISELECT(_ZThn48_N7ee331303fooEv,_ZThn24_N7ee331303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee33130[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33130[0]),
+ (VTBL_ENTRY)&_ZN7ee331303fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee331303fooEv,_ZTv0_n24_N7ee331303fooEv),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33130[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee33130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee331303fooEv,_ZTv0_n16_N7ee331303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee33130[];
+extern void _ZN6dd31303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3130__7ee33130[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3130[0]),
+ (VTBL_ENTRY)&_ZN6dd31303fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc130__6dd3130__7ee33130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3130[0]),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd31303fooEv,_ZTv0_n16_N6dd31303fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31303fooEv,_ZThn16_N6dd31303fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb30__6dd3130__7ee33130[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd31303fooEv,_ZTv0_n16_N6dd31303fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc130__7ee33130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc130__7ee33130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__7ee33130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee33130[] = {
+ {&(_ZTV7ee33130[6]), 6,23},
+ {&(_ZTV7ee33130[13]), 13,23},
+ {&(_ZTV7ee33130[18]), 18,23},
+ {&(_ZTV7ee33130[22]), 22,23},
+ {&(_tg__ZTV6dd3130__7ee33130[5]), 5,6},
+ {&(_tg__ZTV5cc130__6dd3130__7ee33130[4]), 4,4},
+ {&(_tg__ZTV4bb30__6dd3130__7ee33130[4]), 4,5},
+ {&(_tg__ZTV5cc130__7ee33130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc130__7ee33130[4]), 4,5},
+ {&(_tg__ZTV4bb30__7ee33130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee33130[];
+extern VTBL_ENTRY _ZTV7ee33130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33130[];
+static VTBL_ENTRY alt_thunk_names59[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd31303fooEv,_ZTv0_n16_N6dd31303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31303fooEv,_ZThn16_N6dd31303fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee331303fooEv,_ZTv0_n16_N7ee331303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee331303fooEv,_ZThn24_N7ee331303fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee331303fooEv,_ZTv0_n24_N7ee331303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee331303fooEv,_ZThn8_N7ee331303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33130 = { "ee33130", // class name
+ bases_ee33130, 4,
+ &(vtc_ee33130[0]), // expected_vtbl_contents
+ &(vtt_ee33130[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee33130),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33130),23, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33130),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names59,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43130 : dd3130 {
+ int e;
+ virtual void bar(); // _ZN7ee431303barEv
+ ~ee43130(); // tgen
+ ee43130(); // tgen
+};
+//SIG(1 ee43130) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee43130 ::bar(){vfunc_called(this, "_ZN7ee431303barEv");}
+ee43130 ::~ee43130(){ note_dtor("ee43130", this);} // tgen
+ee43130 ::ee43130(){ note_ctor("ee43130", this);} // tgen
+
+static void Test_ee43130()
+{
+ extern Class_Descriptor cd_ee43130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee43130, buf);
+ ee43130 *dp, &lv = *(dp=new (buf) ee43130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee43130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(44,28), "ee43130");
+ check_base_class_offset(lv, (bb30*)(cc130*), ABISELECT(32,20), "ee43130");
+ check_base_class_offset(lv, (cc130*)(dd3130*), ABISELECT(16,12), "ee43130");
+ check_base_class_offset(lv, (dd3130*), 0, "ee43130");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43130.e");
+ test_class_info(&lv, &cd_ee43130);
+ dp->~ee43130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43130(Test_ee43130, "ee43130", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee43130C1Ev();
+extern void _ZN7ee43130D1Ev();
+Name_Map name_map_ee43130[] = {
+ NSPAIR(_ZN7ee43130C1Ev),
+ NSPAIR(_ZN7ee43130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+extern Class_Descriptor cd_dd3130;
+extern VTBL_ENTRY _ZTI6dd3130[];
+extern VTBL_ENTRY _ZTV6dd3130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3130[];
+static Base_Class bases_ee43130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3130, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43130[];
+extern void _ZN6dd31303fooEv();
+extern void _ZN7ee431303barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd31303fooEv,_ZTv0_n16_N6dd31303fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31303fooEv,_ZThn20_N6dd31303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43130[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43130[0]),
+ (VTBL_ENTRY)&_ZN6dd31303fooEv,
+ (VTBL_ENTRY)&_ZN7ee431303barEv,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43130[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee43130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd31303fooEv,_ZTv0_n16_N6dd31303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee43130[];
+extern void _ZN6dd31303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3130__7ee43130[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3130[0]),
+ (VTBL_ENTRY)&_ZN6dd31303fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc130__6dd3130__7ee43130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3130[0]),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd31303fooEv,_ZTv0_n16_N6dd31303fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31303fooEv,_ZThn20_N6dd31303fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb30__6dd3130__7ee43130[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd31303fooEv,_ZTv0_n16_N6dd31303fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc130__7ee43130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc130__7ee43130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__7ee43130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee43130[] = {
+ {&(_ZTV7ee43130[5]), 5,16},
+ {&(_tg__ZTV6dd3130__7ee43130[5]), 5,6},
+ {&(_tg__ZTV5cc130__6dd3130__7ee43130[4]), 4,4},
+ {&(_tg__ZTV4bb30__6dd3130__7ee43130[4]), 4,5},
+ {&(_ZTV7ee43130[11]), 11,16},
+ {&(_ZTV7ee43130[15]), 15,16},
+ {&(_tg__ZTV5cc130__7ee43130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc130__7ee43130[4]), 4,5},
+ {&(_tg__ZTV4bb30__7ee43130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee43130[];
+extern VTBL_ENTRY _ZTV7ee43130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43130[];
+static VTBL_ENTRY alt_thunk_names60[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd31303fooEv,_ZTv0_n16_N6dd31303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31303fooEv,_ZThn20_N6dd31303fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31303fooEv,_ZThn20_N6dd31303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43130 = { "ee43130", // class name
+ bases_ee43130, 4,
+ &(vtc_ee43130[0]), // expected_vtbl_contents
+ &(vtt_ee43130[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee43130),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43130),16, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43130),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names60,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53130 : virtual dd3130 {
+ int e;
+ virtual void bar(); // _ZN7ee531303barEv
+ ~ee53130(); // tgen
+ ee53130(); // tgen
+};
+//SIG(1 ee53130) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee53130 ::bar(){vfunc_called(this, "_ZN7ee531303barEv");}
+ee53130 ::~ee53130(){ note_dtor("ee53130", this);} // tgen
+ee53130 ::ee53130(){ note_ctor("ee53130", this);} // tgen
+
+static void Test_ee53130()
+{
+ extern Class_Descriptor cd_ee53130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee53130, buf);
+ ee53130 *dp, &lv = *(dp=new (buf) ee53130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee53130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(60,32), "ee53130");
+ check_base_class_offset(lv, (bb30*)(cc130*), ABISELECT(48,24), "ee53130");
+ check_base_class_offset(lv, (cc130*)(dd3130*), ABISELECT(32,16), "ee53130");
+ check_base_class_offset(lv, (dd3130*), ABISELECT(16,8), "ee53130");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53130.e");
+ test_class_info(&lv, &cd_ee53130);
+ dp->~ee53130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53130(Test_ee53130, "ee53130", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee53130C1Ev();
+extern void _ZN7ee53130D1Ev();
+Name_Map name_map_ee53130[] = {
+ NSPAIR(_ZN7ee53130C1Ev),
+ NSPAIR(_ZN7ee53130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+extern Class_Descriptor cd_dd3130;
+extern VTBL_ENTRY _ZTI6dd3130[];
+extern VTBL_ENTRY _ZTV6dd3130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3130[];
+static Base_Class bases_ee53130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,32), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3130, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee53130[];
+extern void _ZN7ee531303barEv();
+extern void _ZN6dd31303fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd31303fooEv,_ZTv0_n16_N6dd31303fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31303fooEv,_ZThn16_N6dd31303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53130[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53130[0]),
+ (VTBL_ENTRY)&_ZN7ee531303barEv,
+ 0,
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53130[0]),
+ (VTBL_ENTRY)&_ZN6dd31303fooEv,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53130[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee53130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd31303fooEv,_ZTv0_n16_N6dd31303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee53130[];
+extern void _ZN6dd31303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3130__7ee53130[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3130[0]),
+ (VTBL_ENTRY)&_ZN6dd31303fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc130__6dd3130__7ee53130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3130[0]),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd31303fooEv,_ZTv0_n16_N6dd31303fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31303fooEv,_ZThn16_N6dd31303fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb30__6dd3130__7ee53130[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd31303fooEv,_ZTv0_n16_N6dd31303fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc130__7ee53130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc130__7ee53130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__7ee53130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee53130[] = {
+ {&(_ZTV7ee53130[6]), 6,23},
+ {&(_ZTV7ee53130[13]), 13,23},
+ {&(_ZTV7ee53130[18]), 18,23},
+ {&(_ZTV7ee53130[22]), 22,23},
+ {&(_tg__ZTV6dd3130__7ee53130[5]), 5,6},
+ {&(_tg__ZTV5cc130__6dd3130__7ee53130[4]), 4,4},
+ {&(_tg__ZTV4bb30__6dd3130__7ee53130[4]), 4,5},
+ {&(_tg__ZTV5cc130__7ee53130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc130__7ee53130[4]), 4,5},
+ {&(_tg__ZTV4bb30__7ee53130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee53130[];
+extern VTBL_ENTRY _ZTV7ee53130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53130[];
+static VTBL_ENTRY alt_thunk_names61[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd31303fooEv,_ZTv0_n16_N6dd31303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31303fooEv,_ZThn16_N6dd31303fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31303fooEv,_ZThn16_N6dd31303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53130 = { "ee53130", // class name
+ bases_ee53130, 4,
+ &(vtc_ee53130[0]), // expected_vtbl_contents
+ &(vtt_ee53130[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee53130),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53130),23, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53130),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names61,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63130 : dd3130 {
+ int e;
+ virtual void foo(); // _ZN7ee631303fooEv
+ virtual void bar(); // _ZN7ee631303barEv
+ ~ee63130(); // tgen
+ ee63130(); // tgen
+};
+//SIG(1 ee63130) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63130 ::foo(){vfunc_called(this, "_ZN7ee631303fooEv");}
+void ee63130 ::bar(){vfunc_called(this, "_ZN7ee631303barEv");}
+ee63130 ::~ee63130(){ note_dtor("ee63130", this);} // tgen
+ee63130 ::ee63130(){ note_ctor("ee63130", this);} // tgen
+
+static void Test_ee63130()
+{
+ extern Class_Descriptor cd_ee63130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee63130, buf);
+ ee63130 *dp, &lv = *(dp=new (buf) ee63130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee63130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(44,28), "ee63130");
+ check_base_class_offset(lv, (bb30*)(cc130*), ABISELECT(32,20), "ee63130");
+ check_base_class_offset(lv, (cc130*)(dd3130*), ABISELECT(16,12), "ee63130");
+ check_base_class_offset(lv, (dd3130*), 0, "ee63130");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63130.e");
+ test_class_info(&lv, &cd_ee63130);
+ dp->~ee63130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63130(Test_ee63130, "ee63130", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee63130C1Ev();
+extern void _ZN7ee63130D1Ev();
+Name_Map name_map_ee63130[] = {
+ NSPAIR(_ZN7ee63130C1Ev),
+ NSPAIR(_ZN7ee63130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+extern Class_Descriptor cd_dd3130;
+extern VTBL_ENTRY _ZTI6dd3130[];
+extern VTBL_ENTRY _ZTV6dd3130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3130[];
+static Base_Class bases_ee63130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3130, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63130[];
+extern void _ZN7ee631303fooEv();
+extern void _ZN7ee631303barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee631303fooEv,_ZTv0_n16_N7ee631303fooEv)();
+extern void ABISELECT(_ZThn32_N7ee631303fooEv,_ZThn20_N7ee631303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63130[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63130[0]),
+ (VTBL_ENTRY)&_ZN7ee631303fooEv,
+ (VTBL_ENTRY)&_ZN7ee631303barEv,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63130[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee63130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee631303fooEv,_ZTv0_n16_N7ee631303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee63130[];
+extern void _ZN6dd31303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3130__7ee63130[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3130[0]),
+ (VTBL_ENTRY)&_ZN6dd31303fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc130__6dd3130__7ee63130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3130[0]),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd31303fooEv,_ZTv0_n16_N6dd31303fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31303fooEv,_ZThn20_N6dd31303fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb30__6dd3130__7ee63130[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd31303fooEv,_ZTv0_n16_N6dd31303fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc130__7ee63130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc130__7ee63130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__7ee63130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee63130[] = {
+ {&(_ZTV7ee63130[5]), 5,16},
+ {&(_tg__ZTV6dd3130__7ee63130[5]), 5,6},
+ {&(_tg__ZTV5cc130__6dd3130__7ee63130[4]), 4,4},
+ {&(_tg__ZTV4bb30__6dd3130__7ee63130[4]), 4,5},
+ {&(_ZTV7ee63130[11]), 11,16},
+ {&(_ZTV7ee63130[15]), 15,16},
+ {&(_tg__ZTV5cc130__7ee63130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc130__7ee63130[4]), 4,5},
+ {&(_tg__ZTV4bb30__7ee63130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee63130[];
+extern VTBL_ENTRY _ZTV7ee63130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63130[];
+static VTBL_ENTRY alt_thunk_names62[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd31303fooEv,_ZTv0_n16_N6dd31303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31303fooEv,_ZThn20_N6dd31303fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee631303fooEv,_ZTv0_n16_N7ee631303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee631303fooEv,_ZThn20_N7ee631303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63130 = { "ee63130", // class name
+ bases_ee63130, 4,
+ &(vtc_ee63130[0]), // expected_vtbl_contents
+ &(vtt_ee63130[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee63130),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63130),16, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63130),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names62,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73130 : virtual dd3130 {
+ int e;
+ virtual void foo(); // _ZN7ee731303fooEv
+ virtual void bar(); // _ZN7ee731303barEv
+ ~ee73130(); // tgen
+ ee73130(); // tgen
+};
+//SIG(1 ee73130) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73130 ::foo(){vfunc_called(this, "_ZN7ee731303fooEv");}
+void ee73130 ::bar(){vfunc_called(this, "_ZN7ee731303barEv");}
+ee73130 ::~ee73130(){ note_dtor("ee73130", this);} // tgen
+ee73130 ::ee73130(){ note_ctor("ee73130", this);} // tgen
+
+static void Test_ee73130()
+{
+ extern Class_Descriptor cd_ee73130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee73130, buf);
+ ee73130 *dp, &lv = *(dp=new (buf) ee73130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee73130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(60,32), "ee73130");
+ check_base_class_offset(lv, (bb30*)(cc130*), ABISELECT(48,24), "ee73130");
+ check_base_class_offset(lv, (cc130*)(dd3130*), ABISELECT(32,16), "ee73130");
+ check_base_class_offset(lv, (dd3130*), ABISELECT(16,8), "ee73130");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73130.e");
+ test_class_info(&lv, &cd_ee73130);
+ dp->~ee73130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73130(Test_ee73130, "ee73130", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee73130C1Ev();
+extern void _ZN7ee73130D1Ev();
+Name_Map name_map_ee73130[] = {
+ NSPAIR(_ZN7ee73130C1Ev),
+ NSPAIR(_ZN7ee73130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+extern Class_Descriptor cd_dd3130;
+extern VTBL_ENTRY _ZTI6dd3130[];
+extern VTBL_ENTRY _ZTV6dd3130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3130[];
+static Base_Class bases_ee73130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,32), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3130, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee73130[];
+extern void _ZN7ee731303fooEv();
+extern void _ZN7ee731303barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee731303fooEv,_ZTv0_n24_N7ee731303fooEv)();
+extern void ABISELECT(_ZThn16_N7ee731303fooEv,_ZThn8_N7ee731303fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee731303fooEv,_ZTv0_n16_N7ee731303fooEv)();
+extern void ABISELECT(_ZThn48_N7ee731303fooEv,_ZThn24_N7ee731303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73130[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73130[0]),
+ (VTBL_ENTRY)&_ZN7ee731303fooEv,
+ (VTBL_ENTRY)&_ZN7ee731303barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee731303fooEv,_ZTv0_n24_N7ee731303fooEv),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73130[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee73130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee731303fooEv,_ZTv0_n16_N7ee731303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee73130[];
+extern void _ZN6dd31303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3130__7ee73130[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3130[0]),
+ (VTBL_ENTRY)&_ZN6dd31303fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc130__6dd3130__7ee73130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3130[0]),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd31303fooEv,_ZTv0_n16_N6dd31303fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31303fooEv,_ZThn16_N6dd31303fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb30__6dd3130__7ee73130[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd31303fooEv,_ZTv0_n16_N6dd31303fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc130__7ee73130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc130__7ee73130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__7ee73130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee73130[] = {
+ {&(_ZTV7ee73130[6]), 6,24},
+ {&(_ZTV7ee73130[14]), 14,24},
+ {&(_ZTV7ee73130[19]), 19,24},
+ {&(_ZTV7ee73130[23]), 23,24},
+ {&(_tg__ZTV6dd3130__7ee73130[5]), 5,6},
+ {&(_tg__ZTV5cc130__6dd3130__7ee73130[4]), 4,4},
+ {&(_tg__ZTV4bb30__6dd3130__7ee73130[4]), 4,5},
+ {&(_tg__ZTV5cc130__7ee73130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc130__7ee73130[4]), 4,5},
+ {&(_tg__ZTV4bb30__7ee73130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee73130[];
+extern VTBL_ENTRY _ZTV7ee73130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73130[];
+static VTBL_ENTRY alt_thunk_names63[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd31303fooEv,_ZTv0_n16_N6dd31303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31303fooEv,_ZThn16_N6dd31303fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee731303fooEv,_ZTv0_n16_N7ee731303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee731303fooEv,_ZThn24_N7ee731303fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee731303fooEv,_ZTv0_n24_N7ee731303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee731303fooEv,_ZThn8_N7ee731303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73130 = { "ee73130", // class name
+ bases_ee73130, 4,
+ &(vtc_ee73130[0]), // expected_vtbl_contents
+ &(vtt_ee73130[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee73130),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73130),24, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73130),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names63,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4130 : cc130 {
+ int d;
+ virtual void bar(); // _ZN6dd41303barEv
+ ~dd4130(); // tgen
+ dd4130(); // tgen
+};
+//SIG(-1 dd4130) C1{ BC2{ VBC3{ VBC4{ Fi} v2 Fi} Fi} v1 Fi}
+
+
+void dd4130 ::bar(){vfunc_called(this, "_ZN6dd41303barEv");}
+dd4130 ::~dd4130(){ note_dtor("dd4130", this);} // tgen
+dd4130 ::dd4130(){ note_ctor("dd4130", this);} // tgen
+
+static void Test_dd4130()
+{
+ extern Class_Descriptor cd_dd4130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd4130, buf);
+ dd4130 *dp, &lv = *(dp=new (buf) dd4130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd4130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(28,20), "dd4130");
+ check_base_class_offset(lv, (bb30*)(cc130*), ABISELECT(16,12), "dd4130");
+ check_base_class_offset(lv, (cc130*), 0, "dd4130");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd4130.d");
+ test_class_info(&lv, &cd_dd4130);
+ dp->~dd4130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4130(Test_dd4130, "dd4130", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd4130C1Ev();
+extern void _ZN6dd4130D1Ev();
+Name_Map name_map_dd4130[] = {
+ NSPAIR(_ZN6dd4130C1Ev),
+ NSPAIR(_ZN6dd4130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+static Base_Class bases_dd4130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd4130[];
+extern void _ZN6dd41303barEv();
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY vtc_dd4130[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4130[0]),
+ (VTBL_ENTRY)&_ZN6dd41303barEv,
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd4130[];
+static VTBL_ENTRY _tg__ZTV5cc130__6dd4130[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc130__6dd4130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__6dd4130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_dd4130[] = {
+ {&(_ZTV6dd4130[4]), 4,10},
+ {&(_tg__ZTV5cc130__6dd4130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc130__6dd4130[4]), 4,5},
+ {&(_ZTV6dd4130[9]), 9,10},
+ {&(_tg__ZTV4bb30__6dd4130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd4130[];
+extern VTBL_ENTRY _ZTV6dd4130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4130[];
+Class_Descriptor cd_dd4130 = { "dd4130", // class name
+ bases_dd4130, 3,
+ &(vtc_dd4130[0]), // expected_vtbl_contents
+ &(vtt_dd4130[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd4130),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4130),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd4130),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 ee04130 : dd4130 {
+ int e;
+ ~ee04130(); // tgen
+ ee04130(); // tgen
+};
+//SIG(1 ee04130) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee04130 ::~ee04130(){ note_dtor("ee04130", this);} // tgen
+ee04130 ::ee04130(){ note_ctor("ee04130", this);} // tgen
+
+static void Test_ee04130()
+{
+ extern Class_Descriptor cd_ee04130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee04130, buf);
+ ee04130 *dp, &lv = *(dp=new (buf) ee04130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee04130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(36,24), "ee04130");
+ check_base_class_offset(lv, (bb30*)(cc130*)(dd4130*), ABISELECT(24,16), "ee04130");
+ check_base_class_offset(lv, (cc130*)(dd4130*), 0, "ee04130");
+ check_base_class_offset(lv, (dd4130*), 0, "ee04130");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee04130.e");
+ test_class_info(&lv, &cd_ee04130);
+ dp->~ee04130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04130(Test_ee04130, "ee04130", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee04130C1Ev();
+extern void _ZN7ee04130D1Ev();
+Name_Map name_map_ee04130[] = {
+ NSPAIR(_ZN7ee04130C1Ev),
+ NSPAIR(_ZN7ee04130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+extern Class_Descriptor cd_dd4130;
+extern VTBL_ENTRY _ZTI6dd4130[];
+extern VTBL_ENTRY _ZTV6dd4130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4130[];
+static Base_Class bases_ee04130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4130, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04130[];
+extern void _ZN6dd41303barEv();
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY vtc_ee04130[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04130[0]),
+ (VTBL_ENTRY)&_ZN6dd41303barEv,
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee04130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee04130[];
+extern void _ZN6dd41303barEv();
+static VTBL_ENTRY _tg__ZTV6dd4130__7ee04130[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4130[0]),
+ (VTBL_ENTRY)&_ZN6dd41303barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1306dd4130__7ee04130[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc1306dd4130__7ee04130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__6dd4130__7ee04130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__7ee04130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee04130[] = {
+ {&(_ZTV7ee04130[4]), 4,10},
+ {&(_tg__ZTV6dd4130__7ee04130[4]), 4,5},
+ {&(_tg__ZTV5cc1306dd4130__7ee04130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc1306dd4130__7ee04130[4]), 4,5},
+ {&(_tg__ZTV4bb30__6dd4130__7ee04130[4]), 4,5},
+ {&(_ZTV7ee04130[9]), 9,10},
+ {&(_tg__ZTV4bb30__7ee04130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee04130[];
+extern VTBL_ENTRY _ZTV7ee04130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee04130[];
+Class_Descriptor cd_ee04130 = { "ee04130", // class name
+ bases_ee04130, 4,
+ &(vtc_ee04130[0]), // expected_vtbl_contents
+ &(vtt_ee04130[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee04130),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04130),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee04130),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee14130 : virtual dd4130 {
+ int e;
+ ~ee14130(); // tgen
+ ee14130(); // tgen
+};
+//SIG(1 ee14130) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee14130 ::~ee14130(){ note_dtor("ee14130", this);} // tgen
+ee14130 ::ee14130(){ note_ctor("ee14130", this);} // tgen
+
+static void Test_ee14130()
+{
+ extern Class_Descriptor cd_ee14130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee14130, buf);
+ ee14130 *dp, &lv = *(dp=new (buf) ee14130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee14130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(44,28), "ee14130");
+ check_base_class_offset(lv, (bb30*)(cc130*)(dd4130*), ABISELECT(32,20), "ee14130");
+ check_base_class_offset(lv, (cc130*)(dd4130*), ABISELECT(16,8), "ee14130");
+ check_base_class_offset(lv, (dd4130*), ABISELECT(16,8), "ee14130");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14130.e");
+ test_class_info(&lv, &cd_ee14130);
+ dp->~ee14130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14130(Test_ee14130, "ee14130", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee14130C1Ev();
+extern void _ZN7ee14130D1Ev();
+Name_Map name_map_ee14130[] = {
+ NSPAIR(_ZN7ee14130C1Ev),
+ NSPAIR(_ZN7ee14130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+extern Class_Descriptor cd_dd4130;
+extern VTBL_ENTRY _ZTI6dd4130[];
+extern VTBL_ENTRY _ZTV6dd4130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4130[];
+static Base_Class bases_ee14130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4130, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee14130[];
+extern void _ZN6dd41303barEv();
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY vtc_ee14130[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14130[0]),
+ 0,
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14130[0]),
+ (VTBL_ENTRY)&_ZN6dd41303barEv,
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee14130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee14130[];
+extern void _ZN6dd41303barEv();
+static VTBL_ENTRY _tg__ZTV6dd4130__7ee14130[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4130[0]),
+ (VTBL_ENTRY)&_ZN6dd41303barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1306dd4130__7ee14130[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc1306dd4130__7ee14130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__6dd4130__7ee14130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__7ee14130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee14130[] = {
+ {&(_ZTV7ee14130[5]), 5,16},
+ {&(_ZTV7ee14130[10]), 10,16},
+ {&(_ZTV7ee14130[15]), 15,16},
+ {&(_tg__ZTV6dd4130__7ee14130[4]), 4,5},
+ {&(_tg__ZTV5cc1306dd4130__7ee14130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc1306dd4130__7ee14130[4]), 4,5},
+ {&(_tg__ZTV4bb30__6dd4130__7ee14130[4]), 4,5},
+ {&(_tg__ZTV4bb30__7ee14130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee14130[];
+extern VTBL_ENTRY _ZTV7ee14130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14130[];
+Class_Descriptor cd_ee14130 = { "ee14130", // class name
+ bases_ee14130, 4,
+ &(vtc_ee14130[0]), // expected_vtbl_contents
+ &(vtt_ee14130[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee14130),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14130),16, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14130),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee24130 : dd4130 {
+ int e;
+ virtual void foo(); // _ZN7ee241303fooEv
+ ~ee24130(); // tgen
+ ee24130(); // tgen
+};
+//SIG(1 ee24130) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee24130 ::foo(){vfunc_called(this, "_ZN7ee241303fooEv");}
+ee24130 ::~ee24130(){ note_dtor("ee24130", this);} // tgen
+ee24130 ::ee24130(){ note_ctor("ee24130", this);} // tgen
+
+static void Test_ee24130()
+{
+ extern Class_Descriptor cd_ee24130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee24130, buf);
+ ee24130 *dp, &lv = *(dp=new (buf) ee24130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee24130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(36,24), "ee24130");
+ check_base_class_offset(lv, (bb30*)(cc130*)(dd4130*), ABISELECT(24,16), "ee24130");
+ check_base_class_offset(lv, (cc130*)(dd4130*), 0, "ee24130");
+ check_base_class_offset(lv, (dd4130*), 0, "ee24130");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee24130.e");
+ test_class_info(&lv, &cd_ee24130);
+ dp->~ee24130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24130(Test_ee24130, "ee24130", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee24130C1Ev();
+extern void _ZN7ee24130D1Ev();
+Name_Map name_map_ee24130[] = {
+ NSPAIR(_ZN7ee24130C1Ev),
+ NSPAIR(_ZN7ee24130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+extern Class_Descriptor cd_dd4130;
+extern VTBL_ENTRY _ZTI6dd4130[];
+extern VTBL_ENTRY _ZTV6dd4130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4130[];
+static Base_Class bases_ee24130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4130, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24130[];
+extern void _ZN6dd41303barEv();
+extern void _ZN7ee241303fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee241303fooEv,_ZTv0_n16_N7ee241303fooEv)();
+extern void ABISELECT(_ZThn24_N7ee241303fooEv,_ZThn16_N7ee241303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee24130[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24130[0]),
+ (VTBL_ENTRY)&_ZN6dd41303barEv,
+ (VTBL_ENTRY)&_ZN7ee241303fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee24130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee241303fooEv,_ZTv0_n16_N7ee241303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee24130[];
+extern void _ZN6dd41303barEv();
+static VTBL_ENTRY _tg__ZTV6dd4130__7ee24130[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4130[0]),
+ (VTBL_ENTRY)&_ZN6dd41303barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1306dd4130__7ee24130[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc1306dd4130__7ee24130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__6dd4130__7ee24130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__7ee24130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee24130[] = {
+ {&(_ZTV7ee24130[4]), 4,11},
+ {&(_tg__ZTV6dd4130__7ee24130[4]), 4,5},
+ {&(_tg__ZTV5cc1306dd4130__7ee24130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc1306dd4130__7ee24130[4]), 4,5},
+ {&(_tg__ZTV4bb30__6dd4130__7ee24130[4]), 4,5},
+ {&(_ZTV7ee24130[10]), 10,11},
+ {&(_tg__ZTV4bb30__7ee24130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee24130[];
+extern VTBL_ENTRY _ZTV7ee24130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee24130[];
+static VTBL_ENTRY alt_thunk_names64[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee241303fooEv,_ZTv0_n16_N7ee241303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee241303fooEv,_ZThn16_N7ee241303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee24130 = { "ee24130", // class name
+ bases_ee24130, 4,
+ &(vtc_ee24130[0]), // expected_vtbl_contents
+ &(vtt_ee24130[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee24130),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24130),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee24130),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names64,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee34130 : virtual dd4130 {
+ int e;
+ virtual void foo(); // _ZN7ee341303fooEv
+ ~ee34130(); // tgen
+ ee34130(); // tgen
+};
+//SIG(1 ee34130) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee34130 ::foo(){vfunc_called(this, "_ZN7ee341303fooEv");}
+ee34130 ::~ee34130(){ note_dtor("ee34130", this);} // tgen
+ee34130 ::ee34130(){ note_ctor("ee34130", this);} // tgen
+
+static void Test_ee34130()
+{
+ extern Class_Descriptor cd_ee34130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee34130, buf);
+ ee34130 *dp, &lv = *(dp=new (buf) ee34130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee34130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(44,28), "ee34130");
+ check_base_class_offset(lv, (bb30*)(cc130*)(dd4130*), ABISELECT(32,20), "ee34130");
+ check_base_class_offset(lv, (cc130*)(dd4130*), ABISELECT(16,8), "ee34130");
+ check_base_class_offset(lv, (dd4130*), ABISELECT(16,8), "ee34130");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34130.e");
+ test_class_info(&lv, &cd_ee34130);
+ dp->~ee34130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34130(Test_ee34130, "ee34130", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee34130C1Ev();
+extern void _ZN7ee34130D1Ev();
+Name_Map name_map_ee34130[] = {
+ NSPAIR(_ZN7ee34130C1Ev),
+ NSPAIR(_ZN7ee34130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+extern Class_Descriptor cd_dd4130;
+extern VTBL_ENTRY _ZTI6dd4130[];
+extern VTBL_ENTRY _ZTV6dd4130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4130[];
+static Base_Class bases_ee34130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4130, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee34130[];
+extern void _ZN7ee341303fooEv();
+extern void _ZN6dd41303barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee341303fooEv,_ZTv0_n16_N7ee341303fooEv)();
+extern void ABISELECT(_ZThn32_N7ee341303fooEv,_ZThn20_N7ee341303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee34130[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34130[0]),
+ (VTBL_ENTRY)&_ZN7ee341303fooEv,
+ 0,
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34130[0]),
+ (VTBL_ENTRY)&_ZN6dd41303barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee34130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee341303fooEv,_ZTv0_n16_N7ee341303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee34130[];
+extern void _ZN6dd41303barEv();
+static VTBL_ENTRY _tg__ZTV6dd4130__7ee34130[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4130[0]),
+ (VTBL_ENTRY)&_ZN6dd41303barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1306dd4130__7ee34130[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc1306dd4130__7ee34130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__6dd4130__7ee34130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__7ee34130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee34130[] = {
+ {&(_ZTV7ee34130[5]), 5,17},
+ {&(_ZTV7ee34130[11]), 11,17},
+ {&(_ZTV7ee34130[16]), 16,17},
+ {&(_tg__ZTV6dd4130__7ee34130[4]), 4,5},
+ {&(_tg__ZTV5cc1306dd4130__7ee34130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc1306dd4130__7ee34130[4]), 4,5},
+ {&(_tg__ZTV4bb30__6dd4130__7ee34130[4]), 4,5},
+ {&(_tg__ZTV4bb30__7ee34130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee34130[];
+extern VTBL_ENTRY _ZTV7ee34130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34130[];
+static VTBL_ENTRY alt_thunk_names65[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee341303fooEv,_ZTv0_n16_N7ee341303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee341303fooEv,_ZThn20_N7ee341303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34130 = { "ee34130", // class name
+ bases_ee34130, 4,
+ &(vtc_ee34130[0]), // expected_vtbl_contents
+ &(vtt_ee34130[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee34130),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34130),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34130),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names65,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44130 : dd4130 {
+ int e;
+ virtual void bar(); // _ZN7ee441303barEv
+ ~ee44130(); // tgen
+ ee44130(); // tgen
+};
+//SIG(1 ee44130) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee44130 ::bar(){vfunc_called(this, "_ZN7ee441303barEv");}
+ee44130 ::~ee44130(){ note_dtor("ee44130", this);} // tgen
+ee44130 ::ee44130(){ note_ctor("ee44130", this);} // tgen
+
+static void Test_ee44130()
+{
+ extern Class_Descriptor cd_ee44130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee44130, buf);
+ ee44130 *dp, &lv = *(dp=new (buf) ee44130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee44130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(36,24), "ee44130");
+ check_base_class_offset(lv, (bb30*)(cc130*)(dd4130*), ABISELECT(24,16), "ee44130");
+ check_base_class_offset(lv, (cc130*)(dd4130*), 0, "ee44130");
+ check_base_class_offset(lv, (dd4130*), 0, "ee44130");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee44130.e");
+ test_class_info(&lv, &cd_ee44130);
+ dp->~ee44130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44130(Test_ee44130, "ee44130", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee44130C1Ev();
+extern void _ZN7ee44130D1Ev();
+Name_Map name_map_ee44130[] = {
+ NSPAIR(_ZN7ee44130C1Ev),
+ NSPAIR(_ZN7ee44130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+extern Class_Descriptor cd_dd4130;
+extern VTBL_ENTRY _ZTI6dd4130[];
+extern VTBL_ENTRY _ZTV6dd4130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4130[];
+static Base_Class bases_ee44130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4130, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44130[];
+extern void _ZN7ee441303barEv();
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY vtc_ee44130[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44130[0]),
+ (VTBL_ENTRY)&_ZN7ee441303barEv,
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee44130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee44130[];
+extern void _ZN6dd41303barEv();
+static VTBL_ENTRY _tg__ZTV6dd4130__7ee44130[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4130[0]),
+ (VTBL_ENTRY)&_ZN6dd41303barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1306dd4130__7ee44130[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc1306dd4130__7ee44130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__6dd4130__7ee44130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__7ee44130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee44130[] = {
+ {&(_ZTV7ee44130[4]), 4,10},
+ {&(_tg__ZTV6dd4130__7ee44130[4]), 4,5},
+ {&(_tg__ZTV5cc1306dd4130__7ee44130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc1306dd4130__7ee44130[4]), 4,5},
+ {&(_tg__ZTV4bb30__6dd4130__7ee44130[4]), 4,5},
+ {&(_ZTV7ee44130[9]), 9,10},
+ {&(_tg__ZTV4bb30__7ee44130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee44130[];
+extern VTBL_ENTRY _ZTV7ee44130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee44130[];
+Class_Descriptor cd_ee44130 = { "ee44130", // class name
+ bases_ee44130, 4,
+ &(vtc_ee44130[0]), // expected_vtbl_contents
+ &(vtt_ee44130[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee44130),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44130),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee44130),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee54130 : virtual dd4130 {
+ int e;
+ virtual void bar(); // _ZN7ee541303barEv
+ ~ee54130(); // tgen
+ ee54130(); // tgen
+};
+//SIG(1 ee54130) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee54130 ::bar(){vfunc_called(this, "_ZN7ee541303barEv");}
+ee54130 ::~ee54130(){ note_dtor("ee54130", this);} // tgen
+ee54130 ::ee54130(){ note_ctor("ee54130", this);} // tgen
+
+static void Test_ee54130()
+{
+ extern Class_Descriptor cd_ee54130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee54130, buf);
+ ee54130 *dp, &lv = *(dp=new (buf) ee54130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee54130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(44,28), "ee54130");
+ check_base_class_offset(lv, (bb30*)(cc130*)(dd4130*), ABISELECT(32,20), "ee54130");
+ check_base_class_offset(lv, (cc130*)(dd4130*), ABISELECT(16,8), "ee54130");
+ check_base_class_offset(lv, (dd4130*), ABISELECT(16,8), "ee54130");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54130.e");
+ test_class_info(&lv, &cd_ee54130);
+ dp->~ee54130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54130(Test_ee54130, "ee54130", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee54130C1Ev();
+extern void _ZN7ee54130D1Ev();
+Name_Map name_map_ee54130[] = {
+ NSPAIR(_ZN7ee54130C1Ev),
+ NSPAIR(_ZN7ee54130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+extern Class_Descriptor cd_dd4130;
+extern VTBL_ENTRY _ZTI6dd4130[];
+extern VTBL_ENTRY _ZTV6dd4130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4130[];
+static Base_Class bases_ee54130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4130, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee54130[];
+extern void _ZN7ee541303barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee541303barEv,_ZTv0_n20_N7ee541303barEv)();
+extern void ABISELECT(_ZThn16_N7ee541303barEv,_ZThn8_N7ee541303barEv)() __attribute__((weak));
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY vtc_ee54130[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54130[0]),
+ (VTBL_ENTRY)&_ZN7ee541303barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee541303barEv,_ZTv0_n20_N7ee541303barEv),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee54130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee54130[];
+extern void _ZN6dd41303barEv();
+static VTBL_ENTRY _tg__ZTV6dd4130__7ee54130[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4130[0]),
+ (VTBL_ENTRY)&_ZN6dd41303barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1306dd4130__7ee54130[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc1306dd4130__7ee54130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__6dd4130__7ee54130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__7ee54130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee54130[] = {
+ {&(_ZTV7ee54130[5]), 5,17},
+ {&(_ZTV7ee54130[11]), 11,17},
+ {&(_ZTV7ee54130[16]), 16,17},
+ {&(_tg__ZTV6dd4130__7ee54130[4]), 4,5},
+ {&(_tg__ZTV5cc1306dd4130__7ee54130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc1306dd4130__7ee54130[4]), 4,5},
+ {&(_tg__ZTV4bb30__6dd4130__7ee54130[4]), 4,5},
+ {&(_tg__ZTV4bb30__7ee54130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee54130[];
+extern VTBL_ENTRY _ZTV7ee54130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54130[];
+static VTBL_ENTRY alt_thunk_names66[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee541303barEv,_ZTv0_n20_N7ee541303barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee541303barEv,_ZThn8_N7ee541303barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54130 = { "ee54130", // class name
+ bases_ee54130, 4,
+ &(vtc_ee54130[0]), // expected_vtbl_contents
+ &(vtt_ee54130[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee54130),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54130),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54130),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names66,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64130 : dd4130 {
+ int e;
+ virtual void foo(); // _ZN7ee641303fooEv
+ virtual void bar(); // _ZN7ee641303barEv
+ ~ee64130(); // tgen
+ ee64130(); // tgen
+};
+//SIG(1 ee64130) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64130 ::foo(){vfunc_called(this, "_ZN7ee641303fooEv");}
+void ee64130 ::bar(){vfunc_called(this, "_ZN7ee641303barEv");}
+ee64130 ::~ee64130(){ note_dtor("ee64130", this);} // tgen
+ee64130 ::ee64130(){ note_ctor("ee64130", this);} // tgen
+
+static void Test_ee64130()
+{
+ extern Class_Descriptor cd_ee64130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee64130, buf);
+ ee64130 *dp, &lv = *(dp=new (buf) ee64130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee64130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(36,24), "ee64130");
+ check_base_class_offset(lv, (bb30*)(cc130*)(dd4130*), ABISELECT(24,16), "ee64130");
+ check_base_class_offset(lv, (cc130*)(dd4130*), 0, "ee64130");
+ check_base_class_offset(lv, (dd4130*), 0, "ee64130");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee64130.e");
+ test_class_info(&lv, &cd_ee64130);
+ dp->~ee64130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64130(Test_ee64130, "ee64130", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee64130C1Ev();
+extern void _ZN7ee64130D1Ev();
+Name_Map name_map_ee64130[] = {
+ NSPAIR(_ZN7ee64130C1Ev),
+ NSPAIR(_ZN7ee64130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+extern Class_Descriptor cd_dd4130;
+extern VTBL_ENTRY _ZTI6dd4130[];
+extern VTBL_ENTRY _ZTV6dd4130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4130[];
+static Base_Class bases_ee64130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4130, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64130[];
+extern void _ZN7ee641303barEv();
+extern void _ZN7ee641303fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee641303fooEv,_ZTv0_n16_N7ee641303fooEv)();
+extern void ABISELECT(_ZThn24_N7ee641303fooEv,_ZThn16_N7ee641303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee64130[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64130[0]),
+ (VTBL_ENTRY)&_ZN7ee641303barEv,
+ (VTBL_ENTRY)&_ZN7ee641303fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee64130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee641303fooEv,_ZTv0_n16_N7ee641303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee64130[];
+extern void _ZN6dd41303barEv();
+static VTBL_ENTRY _tg__ZTV6dd4130__7ee64130[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4130[0]),
+ (VTBL_ENTRY)&_ZN6dd41303barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1306dd4130__7ee64130[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc1306dd4130__7ee64130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__6dd4130__7ee64130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__7ee64130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee64130[] = {
+ {&(_ZTV7ee64130[4]), 4,11},
+ {&(_tg__ZTV6dd4130__7ee64130[4]), 4,5},
+ {&(_tg__ZTV5cc1306dd4130__7ee64130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc1306dd4130__7ee64130[4]), 4,5},
+ {&(_tg__ZTV4bb30__6dd4130__7ee64130[4]), 4,5},
+ {&(_ZTV7ee64130[10]), 10,11},
+ {&(_tg__ZTV4bb30__7ee64130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee64130[];
+extern VTBL_ENTRY _ZTV7ee64130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee64130[];
+static VTBL_ENTRY alt_thunk_names67[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee641303fooEv,_ZTv0_n16_N7ee641303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee641303fooEv,_ZThn16_N7ee641303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee64130 = { "ee64130", // class name
+ bases_ee64130, 4,
+ &(vtc_ee64130[0]), // expected_vtbl_contents
+ &(vtt_ee64130[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee64130),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64130),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee64130),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names67,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee74130 : virtual dd4130 {
+ int e;
+ virtual void foo(); // _ZN7ee741303fooEv
+ virtual void bar(); // _ZN7ee741303barEv
+ ~ee74130(); // tgen
+ ee74130(); // tgen
+};
+//SIG(1 ee74130) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74130 ::foo(){vfunc_called(this, "_ZN7ee741303fooEv");}
+void ee74130 ::bar(){vfunc_called(this, "_ZN7ee741303barEv");}
+ee74130 ::~ee74130(){ note_dtor("ee74130", this);} // tgen
+ee74130 ::ee74130(){ note_ctor("ee74130", this);} // tgen
+
+static void Test_ee74130()
+{
+ extern Class_Descriptor cd_ee74130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee74130, buf);
+ ee74130 *dp, &lv = *(dp=new (buf) ee74130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee74130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(44,28), "ee74130");
+ check_base_class_offset(lv, (bb30*)(cc130*)(dd4130*), ABISELECT(32,20), "ee74130");
+ check_base_class_offset(lv, (cc130*)(dd4130*), ABISELECT(16,8), "ee74130");
+ check_base_class_offset(lv, (dd4130*), ABISELECT(16,8), "ee74130");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74130.e");
+ test_class_info(&lv, &cd_ee74130);
+ dp->~ee74130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74130(Test_ee74130, "ee74130", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee74130C1Ev();
+extern void _ZN7ee74130D1Ev();
+Name_Map name_map_ee74130[] = {
+ NSPAIR(_ZN7ee74130C1Ev),
+ NSPAIR(_ZN7ee74130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+extern Class_Descriptor cd_dd4130;
+extern VTBL_ENTRY _ZTI6dd4130[];
+extern VTBL_ENTRY _ZTV6dd4130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4130[];
+static Base_Class bases_ee74130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4130, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee74130[];
+extern void _ZN7ee741303fooEv();
+extern void _ZN7ee741303barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee741303barEv,_ZTv0_n20_N7ee741303barEv)();
+extern void ABISELECT(_ZThn16_N7ee741303barEv,_ZThn8_N7ee741303barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee741303fooEv,_ZTv0_n16_N7ee741303fooEv)();
+extern void ABISELECT(_ZThn32_N7ee741303fooEv,_ZThn20_N7ee741303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74130[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74130[0]),
+ (VTBL_ENTRY)&_ZN7ee741303fooEv,
+ (VTBL_ENTRY)&_ZN7ee741303barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee741303barEv,_ZTv0_n20_N7ee741303barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee74130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee741303fooEv,_ZTv0_n16_N7ee741303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee74130[];
+extern void _ZN6dd41303barEv();
+static VTBL_ENTRY _tg__ZTV6dd4130__7ee74130[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4130[0]),
+ (VTBL_ENTRY)&_ZN6dd41303barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1306dd4130__7ee74130[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc1306dd4130__7ee74130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__6dd4130__7ee74130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__7ee74130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee74130[] = {
+ {&(_ZTV7ee74130[5]), 5,18},
+ {&(_ZTV7ee74130[12]), 12,18},
+ {&(_ZTV7ee74130[17]), 17,18},
+ {&(_tg__ZTV6dd4130__7ee74130[4]), 4,5},
+ {&(_tg__ZTV5cc1306dd4130__7ee74130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc1306dd4130__7ee74130[4]), 4,5},
+ {&(_tg__ZTV4bb30__6dd4130__7ee74130[4]), 4,5},
+ {&(_tg__ZTV4bb30__7ee74130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee74130[];
+extern VTBL_ENTRY _ZTV7ee74130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74130[];
+static VTBL_ENTRY alt_thunk_names68[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee741303fooEv,_ZTv0_n16_N7ee741303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee741303fooEv,_ZThn20_N7ee741303fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee741303barEv,_ZTv0_n20_N7ee741303barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee741303barEv,_ZThn8_N7ee741303barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74130 = { "ee74130", // class name
+ bases_ee74130, 4,
+ &(vtc_ee74130[0]), // expected_vtbl_contents
+ &(vtt_ee74130[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee74130),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74130),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74130),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names68,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5130 : virtual cc130 {
+ int d;
+ virtual void bar(); // _ZN6dd51303barEv
+ ~dd5130(); // tgen
+ dd5130(); // tgen
+};
+//SIG(-1 dd5130) C1{ VBC2{ VBC3{ VBC4{ Fi} v2 Fi} Fi} v1 Fi}
+
+
+void dd5130 ::bar(){vfunc_called(this, "_ZN6dd51303barEv");}
+dd5130 ::~dd5130(){ note_dtor("dd5130", this);} // tgen
+dd5130 ::dd5130(){ note_ctor("dd5130", this);} // tgen
+
+static void Test_dd5130()
+{
+ extern Class_Descriptor cd_dd5130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd5130, buf);
+ dd5130 *dp, &lv = *(dp=new (buf) dd5130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd5130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(44,24), "dd5130");
+ check_base_class_offset(lv, (bb30*)(cc130*), ABISELECT(32,16), "dd5130");
+ check_base_class_offset(lv, (cc130*), ABISELECT(16,8), "dd5130");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5130.d");
+ test_class_info(&lv, &cd_dd5130);
+ dp->~dd5130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5130(Test_dd5130, "dd5130", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd5130C1Ev();
+extern void _ZN6dd5130D1Ev();
+Name_Map name_map_dd5130[] = {
+ NSPAIR(_ZN6dd5130C1Ev),
+ NSPAIR(_ZN6dd5130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+static Base_Class bases_dd5130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, 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 _ZTI6dd5130[];
+extern void _ZN6dd51303barEv();
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY vtc_dd5130[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5130[0]),
+ (VTBL_ENTRY)&_ZN6dd51303barEv,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5130[0]),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd5130[];
+static VTBL_ENTRY _tg__ZTV5cc130__6dd5130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc130__6dd5130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__6dd5130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_dd5130[] = {
+ {&(_ZTV6dd5130[5]), 5,15},
+ {&(_ZTV6dd5130[10]), 10,15},
+ {&(_ZTV6dd5130[14]), 14,15},
+ {&(_tg__ZTV5cc130__6dd5130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc130__6dd5130[4]), 4,5},
+ {&(_tg__ZTV4bb30__6dd5130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd5130[];
+extern VTBL_ENTRY _ZTV6dd5130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5130[];
+Class_Descriptor cd_dd5130 = { "dd5130", // class name
+ bases_dd5130, 3,
+ &(vtc_dd5130[0]), // expected_vtbl_contents
+ &(vtt_dd5130[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd5130),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5130),15, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5130),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 ee05130 : dd5130 {
+ int e;
+ ~ee05130(); // tgen
+ ee05130(); // tgen
+};
+//SIG(1 ee05130) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee05130 ::~ee05130(){ note_dtor("ee05130", this);} // tgen
+ee05130 ::ee05130(){ note_ctor("ee05130", this);} // tgen
+
+static void Test_ee05130()
+{
+ extern Class_Descriptor cd_ee05130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee05130, buf);
+ ee05130 *dp, &lv = *(dp=new (buf) ee05130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee05130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(44,28), "ee05130");
+ check_base_class_offset(lv, (bb30*)(cc130*), ABISELECT(32,20), "ee05130");
+ check_base_class_offset(lv, (cc130*)(dd5130*), ABISELECT(16,12), "ee05130");
+ check_base_class_offset(lv, (dd5130*), 0, "ee05130");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05130.e");
+ test_class_info(&lv, &cd_ee05130);
+ dp->~ee05130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05130(Test_ee05130, "ee05130", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee05130C1Ev();
+extern void _ZN7ee05130D1Ev();
+Name_Map name_map_ee05130[] = {
+ NSPAIR(_ZN7ee05130C1Ev),
+ NSPAIR(_ZN7ee05130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+extern Class_Descriptor cd_dd5130;
+extern VTBL_ENTRY _ZTI6dd5130[];
+extern VTBL_ENTRY _ZTV6dd5130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5130[];
+static Base_Class bases_ee05130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5130, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05130[];
+extern void _ZN6dd51303barEv();
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY vtc_ee05130[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05130[0]),
+ (VTBL_ENTRY)&_ZN6dd51303barEv,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05130[0]),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee05130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee05130[];
+extern void _ZN6dd51303barEv();
+static VTBL_ENTRY _tg__ZTV6dd5130__7ee05130[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5130[0]),
+ (VTBL_ENTRY)&_ZN6dd51303barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc130__6dd5130__7ee05130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__6dd5130__7ee05130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc130__7ee05130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc130__7ee05130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__7ee05130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee05130[] = {
+ {&(_ZTV7ee05130[5]), 5,15},
+ {&(_tg__ZTV6dd5130__7ee05130[5]), 5,6},
+ {&(_tg__ZTV5cc130__6dd5130__7ee05130[4]), 4,4},
+ {&(_tg__ZTV4bb30__6dd5130__7ee05130[4]), 4,5},
+ {&(_ZTV7ee05130[10]), 10,15},
+ {&(_ZTV7ee05130[14]), 14,15},
+ {&(_tg__ZTV5cc130__7ee05130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc130__7ee05130[4]), 4,5},
+ {&(_tg__ZTV4bb30__7ee05130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee05130[];
+extern VTBL_ENTRY _ZTV7ee05130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05130[];
+Class_Descriptor cd_ee05130 = { "ee05130", // class name
+ bases_ee05130, 4,
+ &(vtc_ee05130[0]), // expected_vtbl_contents
+ &(vtt_ee05130[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee05130),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05130),15, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05130),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee15130 : virtual dd5130 {
+ int e;
+ ~ee15130(); // tgen
+ ee15130(); // tgen
+};
+//SIG(1 ee15130) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee15130 ::~ee15130(){ note_dtor("ee15130", this);} // tgen
+ee15130 ::ee15130(){ note_ctor("ee15130", this);} // tgen
+
+static void Test_ee15130()
+{
+ extern Class_Descriptor cd_ee15130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee15130, buf);
+ ee15130 *dp, &lv = *(dp=new (buf) ee15130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee15130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(60,32), "ee15130");
+ check_base_class_offset(lv, (bb30*)(cc130*), ABISELECT(48,24), "ee15130");
+ check_base_class_offset(lv, (cc130*)(dd5130*), ABISELECT(32,16), "ee15130");
+ check_base_class_offset(lv, (dd5130*), ABISELECT(16,8), "ee15130");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15130.e");
+ test_class_info(&lv, &cd_ee15130);
+ dp->~ee15130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15130(Test_ee15130, "ee15130", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee15130C1Ev();
+extern void _ZN7ee15130D1Ev();
+Name_Map name_map_ee15130[] = {
+ NSPAIR(_ZN7ee15130C1Ev),
+ NSPAIR(_ZN7ee15130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+extern Class_Descriptor cd_dd5130;
+extern VTBL_ENTRY _ZTI6dd5130[];
+extern VTBL_ENTRY _ZTV6dd5130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5130[];
+static Base_Class bases_ee15130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,32), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5130, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee15130[];
+extern void _ZN6dd51303barEv();
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY vtc_ee15130[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15130[0]),
+ 0,
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15130[0]),
+ (VTBL_ENTRY)&_ZN6dd51303barEv,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15130[0]),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee15130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee15130[];
+extern void _ZN6dd51303barEv();
+static VTBL_ENTRY _tg__ZTV6dd5130__7ee15130[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5130[0]),
+ (VTBL_ENTRY)&_ZN6dd51303barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc130__6dd5130__7ee15130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__6dd5130__7ee15130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc130__7ee15130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc130__7ee15130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__7ee15130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee15130[] = {
+ {&(_ZTV7ee15130[6]), 6,22},
+ {&(_ZTV7ee15130[12]), 12,22},
+ {&(_ZTV7ee15130[17]), 17,22},
+ {&(_ZTV7ee15130[21]), 21,22},
+ {&(_tg__ZTV6dd5130__7ee15130[5]), 5,6},
+ {&(_tg__ZTV5cc130__6dd5130__7ee15130[4]), 4,4},
+ {&(_tg__ZTV4bb30__6dd5130__7ee15130[4]), 4,5},
+ {&(_tg__ZTV5cc130__7ee15130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc130__7ee15130[4]), 4,5},
+ {&(_tg__ZTV4bb30__7ee15130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee15130[];
+extern VTBL_ENTRY _ZTV7ee15130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15130[];
+Class_Descriptor cd_ee15130 = { "ee15130", // class name
+ bases_ee15130, 4,
+ &(vtc_ee15130[0]), // expected_vtbl_contents
+ &(vtt_ee15130[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee15130),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15130),22, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15130),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25130 : dd5130 {
+ int e;
+ virtual void foo(); // _ZN7ee251303fooEv
+ ~ee25130(); // tgen
+ ee25130(); // tgen
+};
+//SIG(1 ee25130) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee25130 ::foo(){vfunc_called(this, "_ZN7ee251303fooEv");}
+ee25130 ::~ee25130(){ note_dtor("ee25130", this);} // tgen
+ee25130 ::ee25130(){ note_ctor("ee25130", this);} // tgen
+
+static void Test_ee25130()
+{
+ extern Class_Descriptor cd_ee25130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee25130, buf);
+ ee25130 *dp, &lv = *(dp=new (buf) ee25130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee25130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(44,28), "ee25130");
+ check_base_class_offset(lv, (bb30*)(cc130*), ABISELECT(32,20), "ee25130");
+ check_base_class_offset(lv, (cc130*)(dd5130*), ABISELECT(16,12), "ee25130");
+ check_base_class_offset(lv, (dd5130*), 0, "ee25130");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25130.e");
+ test_class_info(&lv, &cd_ee25130);
+ dp->~ee25130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25130(Test_ee25130, "ee25130", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee25130C1Ev();
+extern void _ZN7ee25130D1Ev();
+Name_Map name_map_ee25130[] = {
+ NSPAIR(_ZN7ee25130C1Ev),
+ NSPAIR(_ZN7ee25130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+extern Class_Descriptor cd_dd5130;
+extern VTBL_ENTRY _ZTI6dd5130[];
+extern VTBL_ENTRY _ZTV6dd5130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5130[];
+static Base_Class bases_ee25130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5130, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25130[];
+extern void _ZN6dd51303barEv();
+extern void _ZN7ee251303fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee251303fooEv,_ZTv0_n16_N7ee251303fooEv)();
+extern void ABISELECT(_ZThn32_N7ee251303fooEv,_ZThn20_N7ee251303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25130[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25130[0]),
+ (VTBL_ENTRY)&_ZN6dd51303barEv,
+ (VTBL_ENTRY)&_ZN7ee251303fooEv,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25130[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee25130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee251303fooEv,_ZTv0_n16_N7ee251303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee25130[];
+extern void _ZN6dd51303barEv();
+static VTBL_ENTRY _tg__ZTV6dd5130__7ee25130[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5130[0]),
+ (VTBL_ENTRY)&_ZN6dd51303barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc130__6dd5130__7ee25130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__6dd5130__7ee25130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc130__7ee25130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc130__7ee25130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__7ee25130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee25130[] = {
+ {&(_ZTV7ee25130[5]), 5,16},
+ {&(_tg__ZTV6dd5130__7ee25130[5]), 5,6},
+ {&(_tg__ZTV5cc130__6dd5130__7ee25130[4]), 4,4},
+ {&(_tg__ZTV4bb30__6dd5130__7ee25130[4]), 4,5},
+ {&(_ZTV7ee25130[11]), 11,16},
+ {&(_ZTV7ee25130[15]), 15,16},
+ {&(_tg__ZTV5cc130__7ee25130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc130__7ee25130[4]), 4,5},
+ {&(_tg__ZTV4bb30__7ee25130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee25130[];
+extern VTBL_ENTRY _ZTV7ee25130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25130[];
+static VTBL_ENTRY alt_thunk_names69[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee251303fooEv,_ZTv0_n16_N7ee251303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee251303fooEv,_ZThn20_N7ee251303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25130 = { "ee25130", // class name
+ bases_ee25130, 4,
+ &(vtc_ee25130[0]), // expected_vtbl_contents
+ &(vtt_ee25130[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee25130),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25130),16, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25130),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names69,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35130 : virtual dd5130 {
+ int e;
+ virtual void foo(); // _ZN7ee351303fooEv
+ ~ee35130(); // tgen
+ ee35130(); // tgen
+};
+//SIG(1 ee35130) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee35130 ::foo(){vfunc_called(this, "_ZN7ee351303fooEv");}
+ee35130 ::~ee35130(){ note_dtor("ee35130", this);} // tgen
+ee35130 ::ee35130(){ note_ctor("ee35130", this);} // tgen
+
+static void Test_ee35130()
+{
+ extern Class_Descriptor cd_ee35130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee35130, buf);
+ ee35130 *dp, &lv = *(dp=new (buf) ee35130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee35130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(60,32), "ee35130");
+ check_base_class_offset(lv, (bb30*)(cc130*), ABISELECT(48,24), "ee35130");
+ check_base_class_offset(lv, (cc130*)(dd5130*), ABISELECT(32,16), "ee35130");
+ check_base_class_offset(lv, (dd5130*), ABISELECT(16,8), "ee35130");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35130.e");
+ test_class_info(&lv, &cd_ee35130);
+ dp->~ee35130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35130(Test_ee35130, "ee35130", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee35130C1Ev();
+extern void _ZN7ee35130D1Ev();
+Name_Map name_map_ee35130[] = {
+ NSPAIR(_ZN7ee35130C1Ev),
+ NSPAIR(_ZN7ee35130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+extern Class_Descriptor cd_dd5130;
+extern VTBL_ENTRY _ZTI6dd5130[];
+extern VTBL_ENTRY _ZTV6dd5130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5130[];
+static Base_Class bases_ee35130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,32), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5130, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee35130[];
+extern void _ZN7ee351303fooEv();
+extern void _ZN6dd51303barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee351303fooEv,_ZTv0_n16_N7ee351303fooEv)();
+extern void ABISELECT(_ZThn48_N7ee351303fooEv,_ZThn24_N7ee351303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35130[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35130[0]),
+ (VTBL_ENTRY)&_ZN7ee351303fooEv,
+ 0,
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35130[0]),
+ (VTBL_ENTRY)&_ZN6dd51303barEv,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35130[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee35130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee351303fooEv,_ZTv0_n16_N7ee351303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee35130[];
+extern void _ZN6dd51303barEv();
+static VTBL_ENTRY _tg__ZTV6dd5130__7ee35130[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5130[0]),
+ (VTBL_ENTRY)&_ZN6dd51303barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc130__6dd5130__7ee35130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__6dd5130__7ee35130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc130__7ee35130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc130__7ee35130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__7ee35130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee35130[] = {
+ {&(_ZTV7ee35130[6]), 6,23},
+ {&(_ZTV7ee35130[13]), 13,23},
+ {&(_ZTV7ee35130[18]), 18,23},
+ {&(_ZTV7ee35130[22]), 22,23},
+ {&(_tg__ZTV6dd5130__7ee35130[5]), 5,6},
+ {&(_tg__ZTV5cc130__6dd5130__7ee35130[4]), 4,4},
+ {&(_tg__ZTV4bb30__6dd5130__7ee35130[4]), 4,5},
+ {&(_tg__ZTV5cc130__7ee35130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc130__7ee35130[4]), 4,5},
+ {&(_tg__ZTV4bb30__7ee35130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee35130[];
+extern VTBL_ENTRY _ZTV7ee35130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35130[];
+static VTBL_ENTRY alt_thunk_names70[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee351303fooEv,_ZTv0_n16_N7ee351303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee351303fooEv,_ZThn24_N7ee351303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35130 = { "ee35130", // class name
+ bases_ee35130, 4,
+ &(vtc_ee35130[0]), // expected_vtbl_contents
+ &(vtt_ee35130[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee35130),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35130),23, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35130),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names70,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45130 : dd5130 {
+ int e;
+ virtual void bar(); // _ZN7ee451303barEv
+ ~ee45130(); // tgen
+ ee45130(); // tgen
+};
+//SIG(1 ee45130) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee45130 ::bar(){vfunc_called(this, "_ZN7ee451303barEv");}
+ee45130 ::~ee45130(){ note_dtor("ee45130", this);} // tgen
+ee45130 ::ee45130(){ note_ctor("ee45130", this);} // tgen
+
+static void Test_ee45130()
+{
+ extern Class_Descriptor cd_ee45130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee45130, buf);
+ ee45130 *dp, &lv = *(dp=new (buf) ee45130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee45130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(44,28), "ee45130");
+ check_base_class_offset(lv, (bb30*)(cc130*), ABISELECT(32,20), "ee45130");
+ check_base_class_offset(lv, (cc130*)(dd5130*), ABISELECT(16,12), "ee45130");
+ check_base_class_offset(lv, (dd5130*), 0, "ee45130");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45130.e");
+ test_class_info(&lv, &cd_ee45130);
+ dp->~ee45130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45130(Test_ee45130, "ee45130", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee45130C1Ev();
+extern void _ZN7ee45130D1Ev();
+Name_Map name_map_ee45130[] = {
+ NSPAIR(_ZN7ee45130C1Ev),
+ NSPAIR(_ZN7ee45130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+extern Class_Descriptor cd_dd5130;
+extern VTBL_ENTRY _ZTI6dd5130[];
+extern VTBL_ENTRY _ZTV6dd5130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5130[];
+static Base_Class bases_ee45130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5130, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45130[];
+extern void _ZN7ee451303barEv();
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY vtc_ee45130[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45130[0]),
+ (VTBL_ENTRY)&_ZN7ee451303barEv,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45130[0]),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee45130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee45130[];
+extern void _ZN6dd51303barEv();
+static VTBL_ENTRY _tg__ZTV6dd5130__7ee45130[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5130[0]),
+ (VTBL_ENTRY)&_ZN6dd51303barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc130__6dd5130__7ee45130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__6dd5130__7ee45130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc130__7ee45130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc130__7ee45130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__7ee45130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee45130[] = {
+ {&(_ZTV7ee45130[5]), 5,15},
+ {&(_tg__ZTV6dd5130__7ee45130[5]), 5,6},
+ {&(_tg__ZTV5cc130__6dd5130__7ee45130[4]), 4,4},
+ {&(_tg__ZTV4bb30__6dd5130__7ee45130[4]), 4,5},
+ {&(_ZTV7ee45130[10]), 10,15},
+ {&(_ZTV7ee45130[14]), 14,15},
+ {&(_tg__ZTV5cc130__7ee45130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc130__7ee45130[4]), 4,5},
+ {&(_tg__ZTV4bb30__7ee45130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee45130[];
+extern VTBL_ENTRY _ZTV7ee45130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45130[];
+Class_Descriptor cd_ee45130 = { "ee45130", // class name
+ bases_ee45130, 4,
+ &(vtc_ee45130[0]), // expected_vtbl_contents
+ &(vtt_ee45130[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee45130),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45130),15, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45130),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55130 : virtual dd5130 {
+ int e;
+ virtual void bar(); // _ZN7ee551303barEv
+ ~ee55130(); // tgen
+ ee55130(); // tgen
+};
+//SIG(1 ee55130) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee55130 ::bar(){vfunc_called(this, "_ZN7ee551303barEv");}
+ee55130 ::~ee55130(){ note_dtor("ee55130", this);} // tgen
+ee55130 ::ee55130(){ note_ctor("ee55130", this);} // tgen
+
+static void Test_ee55130()
+{
+ extern Class_Descriptor cd_ee55130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee55130, buf);
+ ee55130 *dp, &lv = *(dp=new (buf) ee55130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee55130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(60,32), "ee55130");
+ check_base_class_offset(lv, (bb30*)(cc130*), ABISELECT(48,24), "ee55130");
+ check_base_class_offset(lv, (cc130*)(dd5130*), ABISELECT(32,16), "ee55130");
+ check_base_class_offset(lv, (dd5130*), ABISELECT(16,8), "ee55130");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55130.e");
+ test_class_info(&lv, &cd_ee55130);
+ dp->~ee55130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55130(Test_ee55130, "ee55130", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee55130C1Ev();
+extern void _ZN7ee55130D1Ev();
+Name_Map name_map_ee55130[] = {
+ NSPAIR(_ZN7ee55130C1Ev),
+ NSPAIR(_ZN7ee55130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+extern Class_Descriptor cd_dd5130;
+extern VTBL_ENTRY _ZTI6dd5130[];
+extern VTBL_ENTRY _ZTV6dd5130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5130[];
+static Base_Class bases_ee55130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,32), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5130, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee55130[];
+extern void _ZN7ee551303barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee551303barEv,_ZTv0_n24_N7ee551303barEv)();
+extern void ABISELECT(_ZThn16_N7ee551303barEv,_ZThn8_N7ee551303barEv)() __attribute__((weak));
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY vtc_ee55130[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55130[0]),
+ (VTBL_ENTRY)&_ZN7ee551303barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee551303barEv,_ZTv0_n24_N7ee551303barEv),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55130[0]),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee55130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee55130[];
+extern void _ZN6dd51303barEv();
+static VTBL_ENTRY _tg__ZTV6dd5130__7ee55130[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5130[0]),
+ (VTBL_ENTRY)&_ZN6dd51303barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc130__6dd5130__7ee55130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__6dd5130__7ee55130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc130__7ee55130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc130__7ee55130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__7ee55130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee55130[] = {
+ {&(_ZTV7ee55130[6]), 6,23},
+ {&(_ZTV7ee55130[13]), 13,23},
+ {&(_ZTV7ee55130[18]), 18,23},
+ {&(_ZTV7ee55130[22]), 22,23},
+ {&(_tg__ZTV6dd5130__7ee55130[5]), 5,6},
+ {&(_tg__ZTV5cc130__6dd5130__7ee55130[4]), 4,4},
+ {&(_tg__ZTV4bb30__6dd5130__7ee55130[4]), 4,5},
+ {&(_tg__ZTV5cc130__7ee55130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc130__7ee55130[4]), 4,5},
+ {&(_tg__ZTV4bb30__7ee55130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee55130[];
+extern VTBL_ENTRY _ZTV7ee55130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55130[];
+static VTBL_ENTRY alt_thunk_names71[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee551303barEv,_ZTv0_n24_N7ee551303barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee551303barEv,_ZThn8_N7ee551303barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55130 = { "ee55130", // class name
+ bases_ee55130, 4,
+ &(vtc_ee55130[0]), // expected_vtbl_contents
+ &(vtt_ee55130[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee55130),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55130),23, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55130),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names71,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65130 : dd5130 {
+ int e;
+ virtual void foo(); // _ZN7ee651303fooEv
+ virtual void bar(); // _ZN7ee651303barEv
+ ~ee65130(); // tgen
+ ee65130(); // tgen
+};
+//SIG(1 ee65130) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65130 ::foo(){vfunc_called(this, "_ZN7ee651303fooEv");}
+void ee65130 ::bar(){vfunc_called(this, "_ZN7ee651303barEv");}
+ee65130 ::~ee65130(){ note_dtor("ee65130", this);} // tgen
+ee65130 ::ee65130(){ note_ctor("ee65130", this);} // tgen
+
+static void Test_ee65130()
+{
+ extern Class_Descriptor cd_ee65130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee65130, buf);
+ ee65130 *dp, &lv = *(dp=new (buf) ee65130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee65130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(44,28), "ee65130");
+ check_base_class_offset(lv, (bb30*)(cc130*), ABISELECT(32,20), "ee65130");
+ check_base_class_offset(lv, (cc130*)(dd5130*), ABISELECT(16,12), "ee65130");
+ check_base_class_offset(lv, (dd5130*), 0, "ee65130");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65130.e");
+ test_class_info(&lv, &cd_ee65130);
+ dp->~ee65130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65130(Test_ee65130, "ee65130", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee65130C1Ev();
+extern void _ZN7ee65130D1Ev();
+Name_Map name_map_ee65130[] = {
+ NSPAIR(_ZN7ee65130C1Ev),
+ NSPAIR(_ZN7ee65130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+extern Class_Descriptor cd_dd5130;
+extern VTBL_ENTRY _ZTI6dd5130[];
+extern VTBL_ENTRY _ZTV6dd5130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5130[];
+static Base_Class bases_ee65130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5130, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65130[];
+extern void _ZN7ee651303barEv();
+extern void _ZN7ee651303fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee651303fooEv,_ZTv0_n16_N7ee651303fooEv)();
+extern void ABISELECT(_ZThn32_N7ee651303fooEv,_ZThn20_N7ee651303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65130[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65130[0]),
+ (VTBL_ENTRY)&_ZN7ee651303barEv,
+ (VTBL_ENTRY)&_ZN7ee651303fooEv,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65130[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee65130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee651303fooEv,_ZTv0_n16_N7ee651303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee65130[];
+extern void _ZN6dd51303barEv();
+static VTBL_ENTRY _tg__ZTV6dd5130__7ee65130[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5130[0]),
+ (VTBL_ENTRY)&_ZN6dd51303barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc130__6dd5130__7ee65130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__6dd5130__7ee65130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc130__7ee65130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc130__7ee65130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__7ee65130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee65130[] = {
+ {&(_ZTV7ee65130[5]), 5,16},
+ {&(_tg__ZTV6dd5130__7ee65130[5]), 5,6},
+ {&(_tg__ZTV5cc130__6dd5130__7ee65130[4]), 4,4},
+ {&(_tg__ZTV4bb30__6dd5130__7ee65130[4]), 4,5},
+ {&(_ZTV7ee65130[11]), 11,16},
+ {&(_ZTV7ee65130[15]), 15,16},
+ {&(_tg__ZTV5cc130__7ee65130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc130__7ee65130[4]), 4,5},
+ {&(_tg__ZTV4bb30__7ee65130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee65130[];
+extern VTBL_ENTRY _ZTV7ee65130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65130[];
+static VTBL_ENTRY alt_thunk_names72[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee651303fooEv,_ZTv0_n16_N7ee651303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee651303fooEv,_ZThn20_N7ee651303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65130 = { "ee65130", // class name
+ bases_ee65130, 4,
+ &(vtc_ee65130[0]), // expected_vtbl_contents
+ &(vtt_ee65130[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee65130),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65130),16, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65130),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names72,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75130 : virtual dd5130 {
+ int e;
+ virtual void foo(); // _ZN7ee751303fooEv
+ virtual void bar(); // _ZN7ee751303barEv
+ ~ee75130(); // tgen
+ ee75130(); // tgen
+};
+//SIG(1 ee75130) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75130 ::foo(){vfunc_called(this, "_ZN7ee751303fooEv");}
+void ee75130 ::bar(){vfunc_called(this, "_ZN7ee751303barEv");}
+ee75130 ::~ee75130(){ note_dtor("ee75130", this);} // tgen
+ee75130 ::ee75130(){ note_ctor("ee75130", this);} // tgen
+
+static void Test_ee75130()
+{
+ extern Class_Descriptor cd_ee75130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee75130, buf);
+ ee75130 *dp, &lv = *(dp=new (buf) ee75130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee75130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(60,32), "ee75130");
+ check_base_class_offset(lv, (bb30*)(cc130*), ABISELECT(48,24), "ee75130");
+ check_base_class_offset(lv, (cc130*)(dd5130*), ABISELECT(32,16), "ee75130");
+ check_base_class_offset(lv, (dd5130*), ABISELECT(16,8), "ee75130");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75130.e");
+ test_class_info(&lv, &cd_ee75130);
+ dp->~ee75130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75130(Test_ee75130, "ee75130", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee75130C1Ev();
+extern void _ZN7ee75130D1Ev();
+Name_Map name_map_ee75130[] = {
+ NSPAIR(_ZN7ee75130C1Ev),
+ NSPAIR(_ZN7ee75130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+extern Class_Descriptor cd_dd5130;
+extern VTBL_ENTRY _ZTI6dd5130[];
+extern VTBL_ENTRY _ZTV6dd5130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5130[];
+static Base_Class bases_ee75130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,32), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5130, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee75130[];
+extern void _ZN7ee751303fooEv();
+extern void _ZN7ee751303barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee751303barEv,_ZTv0_n24_N7ee751303barEv)();
+extern void ABISELECT(_ZThn16_N7ee751303barEv,_ZThn8_N7ee751303barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee751303fooEv,_ZTv0_n16_N7ee751303fooEv)();
+extern void ABISELECT(_ZThn48_N7ee751303fooEv,_ZThn24_N7ee751303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75130[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75130[0]),
+ (VTBL_ENTRY)&_ZN7ee751303fooEv,
+ (VTBL_ENTRY)&_ZN7ee751303barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee751303barEv,_ZTv0_n24_N7ee751303barEv),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75130[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee75130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee751303fooEv,_ZTv0_n16_N7ee751303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee75130[];
+extern void _ZN6dd51303barEv();
+static VTBL_ENTRY _tg__ZTV6dd5130__7ee75130[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5130[0]),
+ (VTBL_ENTRY)&_ZN6dd51303barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc130__6dd5130__7ee75130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__6dd5130__7ee75130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc130__7ee75130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc130__7ee75130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__7ee75130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee75130[] = {
+ {&(_ZTV7ee75130[6]), 6,24},
+ {&(_ZTV7ee75130[14]), 14,24},
+ {&(_ZTV7ee75130[19]), 19,24},
+ {&(_ZTV7ee75130[23]), 23,24},
+ {&(_tg__ZTV6dd5130__7ee75130[5]), 5,6},
+ {&(_tg__ZTV5cc130__6dd5130__7ee75130[4]), 4,4},
+ {&(_tg__ZTV4bb30__6dd5130__7ee75130[4]), 4,5},
+ {&(_tg__ZTV5cc130__7ee75130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc130__7ee75130[4]), 4,5},
+ {&(_tg__ZTV4bb30__7ee75130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee75130[];
+extern VTBL_ENTRY _ZTV7ee75130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75130[];
+static VTBL_ENTRY alt_thunk_names73[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee751303fooEv,_ZTv0_n16_N7ee751303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee751303fooEv,_ZThn24_N7ee751303fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee751303barEv,_ZTv0_n24_N7ee751303barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee751303barEv,_ZThn8_N7ee751303barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75130 = { "ee75130", // class name
+ bases_ee75130, 4,
+ &(vtc_ee75130[0]), // expected_vtbl_contents
+ &(vtt_ee75130[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee75130),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75130),24, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75130),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names73,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6130 : cc130 {
+ int d;
+ virtual void bar(); // _ZN6dd61303barEv
+ virtual void foo(); // _ZN6dd61303fooEv
+ ~dd6130(); // tgen
+ dd6130(); // tgen
+};
+//SIG(-1 dd6130) C1{ BC2{ VBC3{ VBC4{ Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void dd6130 ::bar(){vfunc_called(this, "_ZN6dd61303barEv");}
+void dd6130 ::foo(){vfunc_called(this, "_ZN6dd61303fooEv");}
+dd6130 ::~dd6130(){ note_dtor("dd6130", this);} // tgen
+dd6130 ::dd6130(){ note_ctor("dd6130", this);} // tgen
+
+static void Test_dd6130()
+{
+ extern Class_Descriptor cd_dd6130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd6130, buf);
+ dd6130 *dp, &lv = *(dp=new (buf) dd6130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd6130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(28,20), "dd6130");
+ check_base_class_offset(lv, (bb30*)(cc130*), ABISELECT(16,12), "dd6130");
+ check_base_class_offset(lv, (cc130*), 0, "dd6130");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd6130.d");
+ test_class_info(&lv, &cd_dd6130);
+ dp->~dd6130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6130(Test_dd6130, "dd6130", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd6130C1Ev();
+extern void _ZN6dd6130D1Ev();
+Name_Map name_map_dd6130[] = {
+ NSPAIR(_ZN6dd6130C1Ev),
+ NSPAIR(_ZN6dd6130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+static Base_Class bases_dd6130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd6130[];
+extern void _ZN6dd61303barEv();
+extern void _ZN6dd61303fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd61303fooEv,_ZTv0_n16_N6dd61303fooEv)();
+extern void ABISELECT(_ZThn16_N6dd61303fooEv,_ZThn12_N6dd61303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd6130[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6130[0]),
+ (VTBL_ENTRY)&_ZN6dd61303barEv,
+ (VTBL_ENTRY)&_ZN6dd61303fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61303fooEv,_ZTv0_n16_N6dd61303fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd6130[];
+static VTBL_ENTRY _tg__ZTV5cc130__6dd6130[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc130__6dd6130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__6dd6130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_dd6130[] = {
+ {&(_ZTV6dd6130[4]), 4,11},
+ {&(_tg__ZTV5cc130__6dd6130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc130__6dd6130[4]), 4,5},
+ {&(_ZTV6dd6130[10]), 10,11},
+ {&(_tg__ZTV4bb30__6dd6130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd6130[];
+extern VTBL_ENTRY _ZTV6dd6130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6130[];
+static VTBL_ENTRY alt_thunk_names74[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61303fooEv,_ZTv0_n16_N6dd61303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61303fooEv,_ZThn12_N6dd61303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd6130 = { "dd6130", // class name
+ bases_dd6130, 3,
+ &(vtc_dd6130[0]), // expected_vtbl_contents
+ &(vtt_dd6130[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd6130),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6130),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd6130),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names74,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06130 : dd6130 {
+ int e;
+ ~ee06130(); // tgen
+ ee06130(); // tgen
+};
+//SIG(1 ee06130) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee06130 ::~ee06130(){ note_dtor("ee06130", this);} // tgen
+ee06130 ::ee06130(){ note_ctor("ee06130", this);} // tgen
+
+static void Test_ee06130()
+{
+ extern Class_Descriptor cd_ee06130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee06130, buf);
+ ee06130 *dp, &lv = *(dp=new (buf) ee06130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee06130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(36,24), "ee06130");
+ check_base_class_offset(lv, (bb30*)(cc130*)(dd6130*), ABISELECT(24,16), "ee06130");
+ check_base_class_offset(lv, (cc130*)(dd6130*), 0, "ee06130");
+ check_base_class_offset(lv, (dd6130*), 0, "ee06130");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee06130.e");
+ test_class_info(&lv, &cd_ee06130);
+ dp->~ee06130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06130(Test_ee06130, "ee06130", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee06130C1Ev();
+extern void _ZN7ee06130D1Ev();
+Name_Map name_map_ee06130[] = {
+ NSPAIR(_ZN7ee06130C1Ev),
+ NSPAIR(_ZN7ee06130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+extern Class_Descriptor cd_dd6130;
+extern VTBL_ENTRY _ZTI6dd6130[];
+extern VTBL_ENTRY _ZTV6dd6130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6130[];
+static Base_Class bases_ee06130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6130, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06130[];
+extern void _ZN6dd61303barEv();
+extern void _ZN6dd61303fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd61303fooEv,_ZTv0_n16_N6dd61303fooEv)();
+extern void ABISELECT(_ZThn24_N6dd61303fooEv,_ZThn16_N6dd61303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee06130[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06130[0]),
+ (VTBL_ENTRY)&_ZN6dd61303barEv,
+ (VTBL_ENTRY)&_ZN6dd61303fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee06130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61303fooEv,_ZTv0_n16_N6dd61303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee06130[];
+extern void _ZN6dd61303barEv();
+extern void _ZN6dd61303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6130__7ee06130[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6130[0]),
+ (VTBL_ENTRY)&_ZN6dd61303barEv,
+ (VTBL_ENTRY)&_ZN6dd61303fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1306dd6130__7ee06130[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc1306dd6130__7ee06130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd61303fooEv,_ZTv0_n16_N6dd61303fooEv)();
+extern void ABISELECT(_ZThn24_N6dd61303fooEv,_ZThn16_N6dd61303fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb30__6dd6130__7ee06130[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61303fooEv,_ZTv0_n16_N6dd61303fooEv),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__7ee06130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee06130[] = {
+ {&(_ZTV7ee06130[4]), 4,11},
+ {&(_tg__ZTV6dd6130__7ee06130[4]), 4,6},
+ {&(_tg__ZTV5cc1306dd6130__7ee06130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc1306dd6130__7ee06130[4]), 4,5},
+ {&(_tg__ZTV4bb30__6dd6130__7ee06130[4]), 4,5},
+ {&(_ZTV7ee06130[10]), 10,11},
+ {&(_tg__ZTV4bb30__7ee06130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee06130[];
+extern VTBL_ENTRY _ZTV7ee06130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee06130[];
+static VTBL_ENTRY alt_thunk_names75[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61303fooEv,_ZTv0_n16_N6dd61303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61303fooEv,_ZThn16_N6dd61303fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61303fooEv,_ZThn16_N6dd61303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee06130 = { "ee06130", // class name
+ bases_ee06130, 4,
+ &(vtc_ee06130[0]), // expected_vtbl_contents
+ &(vtt_ee06130[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee06130),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06130),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee06130),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names75,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee16130 : virtual dd6130 {
+ int e;
+ ~ee16130(); // tgen
+ ee16130(); // tgen
+};
+//SIG(1 ee16130) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee16130 ::~ee16130(){ note_dtor("ee16130", this);} // tgen
+ee16130 ::ee16130(){ note_ctor("ee16130", this);} // tgen
+
+static void Test_ee16130()
+{
+ extern Class_Descriptor cd_ee16130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee16130, buf);
+ ee16130 *dp, &lv = *(dp=new (buf) ee16130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee16130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(44,28), "ee16130");
+ check_base_class_offset(lv, (bb30*)(cc130*)(dd6130*), ABISELECT(32,20), "ee16130");
+ check_base_class_offset(lv, (cc130*)(dd6130*), ABISELECT(16,8), "ee16130");
+ check_base_class_offset(lv, (dd6130*), ABISELECT(16,8), "ee16130");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16130.e");
+ test_class_info(&lv, &cd_ee16130);
+ dp->~ee16130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16130(Test_ee16130, "ee16130", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee16130C1Ev();
+extern void _ZN7ee16130D1Ev();
+Name_Map name_map_ee16130[] = {
+ NSPAIR(_ZN7ee16130C1Ev),
+ NSPAIR(_ZN7ee16130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+extern Class_Descriptor cd_dd6130;
+extern VTBL_ENTRY _ZTI6dd6130[];
+extern VTBL_ENTRY _ZTV6dd6130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6130[];
+static Base_Class bases_ee16130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6130, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee16130[];
+extern void _ZN6dd61303barEv();
+extern void _ZN6dd61303fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd61303fooEv,_ZTv0_n16_N6dd61303fooEv)();
+extern void ABISELECT(_ZThn16_N6dd61303fooEv,_ZThn12_N6dd61303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee16130[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16130[0]),
+ 0,
+ 0,
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16130[0]),
+ (VTBL_ENTRY)&_ZN6dd61303barEv,
+ (VTBL_ENTRY)&_ZN6dd61303fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee16130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61303fooEv,_ZTv0_n16_N6dd61303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee16130[];
+extern void _ZN6dd61303barEv();
+extern void _ZN6dd61303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6130__7ee16130[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6130[0]),
+ (VTBL_ENTRY)&_ZN6dd61303barEv,
+ (VTBL_ENTRY)&_ZN6dd61303fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1306dd6130__7ee16130[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc1306dd6130__7ee16130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd61303fooEv,_ZTv0_n16_N6dd61303fooEv)();
+extern void ABISELECT(_ZThn16_N6dd61303fooEv,_ZThn12_N6dd61303fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb30__6dd6130__7ee16130[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61303fooEv,_ZTv0_n16_N6dd61303fooEv),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__7ee16130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee16130[] = {
+ {&(_ZTV7ee16130[5]), 5,18},
+ {&(_ZTV7ee16130[11]), 11,18},
+ {&(_ZTV7ee16130[17]), 17,18},
+ {&(_tg__ZTV6dd6130__7ee16130[4]), 4,6},
+ {&(_tg__ZTV5cc1306dd6130__7ee16130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc1306dd6130__7ee16130[4]), 4,5},
+ {&(_tg__ZTV4bb30__6dd6130__7ee16130[4]), 4,5},
+ {&(_tg__ZTV4bb30__7ee16130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee16130[];
+extern VTBL_ENTRY _ZTV7ee16130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16130[];
+static VTBL_ENTRY alt_thunk_names76[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61303fooEv,_ZTv0_n16_N6dd61303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61303fooEv,_ZThn12_N6dd61303fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61303fooEv,_ZThn12_N6dd61303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee16130 = { "ee16130", // class name
+ bases_ee16130, 4,
+ &(vtc_ee16130[0]), // expected_vtbl_contents
+ &(vtt_ee16130[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee16130),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16130),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16130),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names76,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee26130 : dd6130 {
+ int e;
+ virtual void foo(); // _ZN7ee261303fooEv
+ ~ee26130(); // tgen
+ ee26130(); // tgen
+};
+//SIG(1 ee26130) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26130 ::foo(){vfunc_called(this, "_ZN7ee261303fooEv");}
+ee26130 ::~ee26130(){ note_dtor("ee26130", this);} // tgen
+ee26130 ::ee26130(){ note_ctor("ee26130", this);} // tgen
+
+static void Test_ee26130()
+{
+ extern Class_Descriptor cd_ee26130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee26130, buf);
+ ee26130 *dp, &lv = *(dp=new (buf) ee26130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee26130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(36,24), "ee26130");
+ check_base_class_offset(lv, (bb30*)(cc130*)(dd6130*), ABISELECT(24,16), "ee26130");
+ check_base_class_offset(lv, (cc130*)(dd6130*), 0, "ee26130");
+ check_base_class_offset(lv, (dd6130*), 0, "ee26130");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee26130.e");
+ test_class_info(&lv, &cd_ee26130);
+ dp->~ee26130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26130(Test_ee26130, "ee26130", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee26130C1Ev();
+extern void _ZN7ee26130D1Ev();
+Name_Map name_map_ee26130[] = {
+ NSPAIR(_ZN7ee26130C1Ev),
+ NSPAIR(_ZN7ee26130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+extern Class_Descriptor cd_dd6130;
+extern VTBL_ENTRY _ZTI6dd6130[];
+extern VTBL_ENTRY _ZTV6dd6130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6130[];
+static Base_Class bases_ee26130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6130, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26130[];
+extern void _ZN6dd61303barEv();
+extern void _ZN7ee261303fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee261303fooEv,_ZTv0_n16_N7ee261303fooEv)();
+extern void ABISELECT(_ZThn24_N7ee261303fooEv,_ZThn16_N7ee261303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee26130[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26130[0]),
+ (VTBL_ENTRY)&_ZN6dd61303barEv,
+ (VTBL_ENTRY)&_ZN7ee261303fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee26130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee261303fooEv,_ZTv0_n16_N7ee261303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee26130[];
+extern void _ZN6dd61303barEv();
+extern void _ZN6dd61303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6130__7ee26130[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6130[0]),
+ (VTBL_ENTRY)&_ZN6dd61303barEv,
+ (VTBL_ENTRY)&_ZN6dd61303fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1306dd6130__7ee26130[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc1306dd6130__7ee26130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd61303fooEv,_ZTv0_n16_N6dd61303fooEv)();
+extern void ABISELECT(_ZThn24_N6dd61303fooEv,_ZThn16_N6dd61303fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb30__6dd6130__7ee26130[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61303fooEv,_ZTv0_n16_N6dd61303fooEv),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__7ee26130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee26130[] = {
+ {&(_ZTV7ee26130[4]), 4,11},
+ {&(_tg__ZTV6dd6130__7ee26130[4]), 4,6},
+ {&(_tg__ZTV5cc1306dd6130__7ee26130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc1306dd6130__7ee26130[4]), 4,5},
+ {&(_tg__ZTV4bb30__6dd6130__7ee26130[4]), 4,5},
+ {&(_ZTV7ee26130[10]), 10,11},
+ {&(_tg__ZTV4bb30__7ee26130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee26130[];
+extern VTBL_ENTRY _ZTV7ee26130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee26130[];
+static VTBL_ENTRY alt_thunk_names77[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61303fooEv,_ZTv0_n16_N6dd61303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61303fooEv,_ZThn16_N6dd61303fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee261303fooEv,_ZTv0_n16_N7ee261303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee261303fooEv,_ZThn16_N7ee261303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee26130 = { "ee26130", // class name
+ bases_ee26130, 4,
+ &(vtc_ee26130[0]), // expected_vtbl_contents
+ &(vtt_ee26130[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee26130),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26130),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee26130),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names77,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee36130 : virtual dd6130 {
+ int e;
+ virtual void foo(); // _ZN7ee361303fooEv
+ ~ee36130(); // tgen
+ ee36130(); // tgen
+};
+//SIG(1 ee36130) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36130 ::foo(){vfunc_called(this, "_ZN7ee361303fooEv");}
+ee36130 ::~ee36130(){ note_dtor("ee36130", this);} // tgen
+ee36130 ::ee36130(){ note_ctor("ee36130", this);} // tgen
+
+static void Test_ee36130()
+{
+ extern Class_Descriptor cd_ee36130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee36130, buf);
+ ee36130 *dp, &lv = *(dp=new (buf) ee36130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee36130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(44,28), "ee36130");
+ check_base_class_offset(lv, (bb30*)(cc130*)(dd6130*), ABISELECT(32,20), "ee36130");
+ check_base_class_offset(lv, (cc130*)(dd6130*), ABISELECT(16,8), "ee36130");
+ check_base_class_offset(lv, (dd6130*), ABISELECT(16,8), "ee36130");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36130.e");
+ test_class_info(&lv, &cd_ee36130);
+ dp->~ee36130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36130(Test_ee36130, "ee36130", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee36130C1Ev();
+extern void _ZN7ee36130D1Ev();
+Name_Map name_map_ee36130[] = {
+ NSPAIR(_ZN7ee36130C1Ev),
+ NSPAIR(_ZN7ee36130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+extern Class_Descriptor cd_dd6130;
+extern VTBL_ENTRY _ZTI6dd6130[];
+extern VTBL_ENTRY _ZTV6dd6130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6130[];
+static Base_Class bases_ee36130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6130, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee36130[];
+extern void _ZN7ee361303fooEv();
+extern void _ZN6dd61303barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee361303fooEv,_ZTv0_n24_N7ee361303fooEv)();
+extern void ABISELECT(_ZThn16_N7ee361303fooEv,_ZThn8_N7ee361303fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee361303fooEv,_ZTv0_n16_N7ee361303fooEv)();
+extern void ABISELECT(_ZThn32_N7ee361303fooEv,_ZThn20_N7ee361303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36130[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36130[0]),
+ (VTBL_ENTRY)&_ZN7ee361303fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36130[0]),
+ (VTBL_ENTRY)&_ZN6dd61303barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee361303fooEv,_ZTv0_n24_N7ee361303fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee36130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee361303fooEv,_ZTv0_n16_N7ee361303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee36130[];
+extern void _ZN6dd61303barEv();
+extern void _ZN6dd61303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6130__7ee36130[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6130[0]),
+ (VTBL_ENTRY)&_ZN6dd61303barEv,
+ (VTBL_ENTRY)&_ZN6dd61303fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1306dd6130__7ee36130[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc1306dd6130__7ee36130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd61303fooEv,_ZTv0_n16_N6dd61303fooEv)();
+extern void ABISELECT(_ZThn16_N6dd61303fooEv,_ZThn12_N6dd61303fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb30__6dd6130__7ee36130[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61303fooEv,_ZTv0_n16_N6dd61303fooEv),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__7ee36130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee36130[] = {
+ {&(_ZTV7ee36130[5]), 5,19},
+ {&(_ZTV7ee36130[12]), 12,19},
+ {&(_ZTV7ee36130[18]), 18,19},
+ {&(_tg__ZTV6dd6130__7ee36130[4]), 4,6},
+ {&(_tg__ZTV5cc1306dd6130__7ee36130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc1306dd6130__7ee36130[4]), 4,5},
+ {&(_tg__ZTV4bb30__6dd6130__7ee36130[4]), 4,5},
+ {&(_tg__ZTV4bb30__7ee36130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee36130[];
+extern VTBL_ENTRY _ZTV7ee36130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36130[];
+static VTBL_ENTRY alt_thunk_names78[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61303fooEv,_ZTv0_n16_N6dd61303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61303fooEv,_ZThn12_N6dd61303fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee361303fooEv,_ZTv0_n16_N7ee361303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee361303fooEv,_ZThn20_N7ee361303fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee361303fooEv,_ZTv0_n24_N7ee361303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee361303fooEv,_ZThn8_N7ee361303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36130 = { "ee36130", // class name
+ bases_ee36130, 4,
+ &(vtc_ee36130[0]), // expected_vtbl_contents
+ &(vtt_ee36130[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee36130),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36130),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36130),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names78,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46130 : dd6130 {
+ int e;
+ virtual void bar(); // _ZN7ee461303barEv
+ ~ee46130(); // tgen
+ ee46130(); // tgen
+};
+//SIG(1 ee46130) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46130 ::bar(){vfunc_called(this, "_ZN7ee461303barEv");}
+ee46130 ::~ee46130(){ note_dtor("ee46130", this);} // tgen
+ee46130 ::ee46130(){ note_ctor("ee46130", this);} // tgen
+
+static void Test_ee46130()
+{
+ extern Class_Descriptor cd_ee46130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee46130, buf);
+ ee46130 *dp, &lv = *(dp=new (buf) ee46130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee46130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(36,24), "ee46130");
+ check_base_class_offset(lv, (bb30*)(cc130*)(dd6130*), ABISELECT(24,16), "ee46130");
+ check_base_class_offset(lv, (cc130*)(dd6130*), 0, "ee46130");
+ check_base_class_offset(lv, (dd6130*), 0, "ee46130");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee46130.e");
+ test_class_info(&lv, &cd_ee46130);
+ dp->~ee46130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46130(Test_ee46130, "ee46130", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee46130C1Ev();
+extern void _ZN7ee46130D1Ev();
+Name_Map name_map_ee46130[] = {
+ NSPAIR(_ZN7ee46130C1Ev),
+ NSPAIR(_ZN7ee46130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+extern Class_Descriptor cd_dd6130;
+extern VTBL_ENTRY _ZTI6dd6130[];
+extern VTBL_ENTRY _ZTV6dd6130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6130[];
+static Base_Class bases_ee46130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6130, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46130[];
+extern void _ZN7ee461303barEv();
+extern void _ZN6dd61303fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd61303fooEv,_ZTv0_n16_N6dd61303fooEv)();
+extern void ABISELECT(_ZThn24_N6dd61303fooEv,_ZThn16_N6dd61303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee46130[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46130[0]),
+ (VTBL_ENTRY)&_ZN7ee461303barEv,
+ (VTBL_ENTRY)&_ZN6dd61303fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee46130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61303fooEv,_ZTv0_n16_N6dd61303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee46130[];
+extern void _ZN6dd61303barEv();
+extern void _ZN6dd61303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6130__7ee46130[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6130[0]),
+ (VTBL_ENTRY)&_ZN6dd61303barEv,
+ (VTBL_ENTRY)&_ZN6dd61303fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1306dd6130__7ee46130[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc1306dd6130__7ee46130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd61303fooEv,_ZTv0_n16_N6dd61303fooEv)();
+extern void ABISELECT(_ZThn24_N6dd61303fooEv,_ZThn16_N6dd61303fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb30__6dd6130__7ee46130[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61303fooEv,_ZTv0_n16_N6dd61303fooEv),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__7ee46130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee46130[] = {
+ {&(_ZTV7ee46130[4]), 4,11},
+ {&(_tg__ZTV6dd6130__7ee46130[4]), 4,6},
+ {&(_tg__ZTV5cc1306dd6130__7ee46130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc1306dd6130__7ee46130[4]), 4,5},
+ {&(_tg__ZTV4bb30__6dd6130__7ee46130[4]), 4,5},
+ {&(_ZTV7ee46130[10]), 10,11},
+ {&(_tg__ZTV4bb30__7ee46130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee46130[];
+extern VTBL_ENTRY _ZTV7ee46130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee46130[];
+static VTBL_ENTRY alt_thunk_names79[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61303fooEv,_ZTv0_n16_N6dd61303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61303fooEv,_ZThn16_N6dd61303fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61303fooEv,_ZThn16_N6dd61303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee46130 = { "ee46130", // class name
+ bases_ee46130, 4,
+ &(vtc_ee46130[0]), // expected_vtbl_contents
+ &(vtt_ee46130[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee46130),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46130),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee46130),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names79,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee56130 : virtual dd6130 {
+ int e;
+ virtual void bar(); // _ZN7ee561303barEv
+ ~ee56130(); // tgen
+ ee56130(); // tgen
+};
+//SIG(1 ee56130) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56130 ::bar(){vfunc_called(this, "_ZN7ee561303barEv");}
+ee56130 ::~ee56130(){ note_dtor("ee56130", this);} // tgen
+ee56130 ::ee56130(){ note_ctor("ee56130", this);} // tgen
+
+static void Test_ee56130()
+{
+ extern Class_Descriptor cd_ee56130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee56130, buf);
+ ee56130 *dp, &lv = *(dp=new (buf) ee56130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee56130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(44,28), "ee56130");
+ check_base_class_offset(lv, (bb30*)(cc130*)(dd6130*), ABISELECT(32,20), "ee56130");
+ check_base_class_offset(lv, (cc130*)(dd6130*), ABISELECT(16,8), "ee56130");
+ check_base_class_offset(lv, (dd6130*), ABISELECT(16,8), "ee56130");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56130.e");
+ test_class_info(&lv, &cd_ee56130);
+ dp->~ee56130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56130(Test_ee56130, "ee56130", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee56130C1Ev();
+extern void _ZN7ee56130D1Ev();
+Name_Map name_map_ee56130[] = {
+ NSPAIR(_ZN7ee56130C1Ev),
+ NSPAIR(_ZN7ee56130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+extern Class_Descriptor cd_dd6130;
+extern VTBL_ENTRY _ZTI6dd6130[];
+extern VTBL_ENTRY _ZTV6dd6130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6130[];
+static Base_Class bases_ee56130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6130, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee56130[];
+extern void _ZN7ee561303barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee561303barEv,_ZTv0_n20_N7ee561303barEv)();
+extern void ABISELECT(_ZThn16_N7ee561303barEv,_ZThn8_N7ee561303barEv)() __attribute__((weak));
+extern void _ZN6dd61303fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd61303fooEv,_ZTv0_n16_N6dd61303fooEv)();
+extern void ABISELECT(_ZThn16_N6dd61303fooEv,_ZThn12_N6dd61303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56130[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56130[0]),
+ (VTBL_ENTRY)&_ZN7ee561303barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee561303barEv,_ZTv0_n20_N7ee561303barEv),
+ (VTBL_ENTRY)&_ZN6dd61303fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee56130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61303fooEv,_ZTv0_n16_N6dd61303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee56130[];
+extern void _ZN6dd61303barEv();
+extern void _ZN6dd61303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6130__7ee56130[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6130[0]),
+ (VTBL_ENTRY)&_ZN6dd61303barEv,
+ (VTBL_ENTRY)&_ZN6dd61303fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1306dd6130__7ee56130[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc1306dd6130__7ee56130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd61303fooEv,_ZTv0_n16_N6dd61303fooEv)();
+extern void ABISELECT(_ZThn16_N6dd61303fooEv,_ZThn12_N6dd61303fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb30__6dd6130__7ee56130[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61303fooEv,_ZTv0_n16_N6dd61303fooEv),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__7ee56130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee56130[] = {
+ {&(_ZTV7ee56130[5]), 5,19},
+ {&(_ZTV7ee56130[12]), 12,19},
+ {&(_ZTV7ee56130[18]), 18,19},
+ {&(_tg__ZTV6dd6130__7ee56130[4]), 4,6},
+ {&(_tg__ZTV5cc1306dd6130__7ee56130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc1306dd6130__7ee56130[4]), 4,5},
+ {&(_tg__ZTV4bb30__6dd6130__7ee56130[4]), 4,5},
+ {&(_tg__ZTV4bb30__7ee56130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee56130[];
+extern VTBL_ENTRY _ZTV7ee56130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56130[];
+static VTBL_ENTRY alt_thunk_names80[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61303fooEv,_ZTv0_n16_N6dd61303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61303fooEv,_ZThn12_N6dd61303fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61303fooEv,_ZThn12_N6dd61303fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee561303barEv,_ZTv0_n20_N7ee561303barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee561303barEv,_ZThn8_N7ee561303barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56130 = { "ee56130", // class name
+ bases_ee56130, 4,
+ &(vtc_ee56130[0]), // expected_vtbl_contents
+ &(vtt_ee56130[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee56130),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56130),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56130),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names80,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66130 : dd6130 {
+ int e;
+ virtual void foo(); // _ZN7ee661303fooEv
+ virtual void bar(); // _ZN7ee661303barEv
+ ~ee66130(); // tgen
+ ee66130(); // tgen
+};
+//SIG(1 ee66130) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66130 ::foo(){vfunc_called(this, "_ZN7ee661303fooEv");}
+void ee66130 ::bar(){vfunc_called(this, "_ZN7ee661303barEv");}
+ee66130 ::~ee66130(){ note_dtor("ee66130", this);} // tgen
+ee66130 ::ee66130(){ note_ctor("ee66130", this);} // tgen
+
+static void Test_ee66130()
+{
+ extern Class_Descriptor cd_ee66130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee66130, buf);
+ ee66130 *dp, &lv = *(dp=new (buf) ee66130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee66130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(36,24), "ee66130");
+ check_base_class_offset(lv, (bb30*)(cc130*)(dd6130*), ABISELECT(24,16), "ee66130");
+ check_base_class_offset(lv, (cc130*)(dd6130*), 0, "ee66130");
+ check_base_class_offset(lv, (dd6130*), 0, "ee66130");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee66130.e");
+ test_class_info(&lv, &cd_ee66130);
+ dp->~ee66130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66130(Test_ee66130, "ee66130", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee66130C1Ev();
+extern void _ZN7ee66130D1Ev();
+Name_Map name_map_ee66130[] = {
+ NSPAIR(_ZN7ee66130C1Ev),
+ NSPAIR(_ZN7ee66130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+extern Class_Descriptor cd_dd6130;
+extern VTBL_ENTRY _ZTI6dd6130[];
+extern VTBL_ENTRY _ZTV6dd6130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6130[];
+static Base_Class bases_ee66130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6130, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66130[];
+extern void _ZN7ee661303barEv();
+extern void _ZN7ee661303fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee661303fooEv,_ZTv0_n16_N7ee661303fooEv)();
+extern void ABISELECT(_ZThn24_N7ee661303fooEv,_ZThn16_N7ee661303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee66130[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66130[0]),
+ (VTBL_ENTRY)&_ZN7ee661303barEv,
+ (VTBL_ENTRY)&_ZN7ee661303fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee66130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee661303fooEv,_ZTv0_n16_N7ee661303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee66130[];
+extern void _ZN6dd61303barEv();
+extern void _ZN6dd61303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6130__7ee66130[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6130[0]),
+ (VTBL_ENTRY)&_ZN6dd61303barEv,
+ (VTBL_ENTRY)&_ZN6dd61303fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1306dd6130__7ee66130[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc1306dd6130__7ee66130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd61303fooEv,_ZTv0_n16_N6dd61303fooEv)();
+extern void ABISELECT(_ZThn24_N6dd61303fooEv,_ZThn16_N6dd61303fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb30__6dd6130__7ee66130[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61303fooEv,_ZTv0_n16_N6dd61303fooEv),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__7ee66130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee66130[] = {
+ {&(_ZTV7ee66130[4]), 4,11},
+ {&(_tg__ZTV6dd6130__7ee66130[4]), 4,6},
+ {&(_tg__ZTV5cc1306dd6130__7ee66130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc1306dd6130__7ee66130[4]), 4,5},
+ {&(_tg__ZTV4bb30__6dd6130__7ee66130[4]), 4,5},
+ {&(_ZTV7ee66130[10]), 10,11},
+ {&(_tg__ZTV4bb30__7ee66130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee66130[];
+extern VTBL_ENTRY _ZTV7ee66130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee66130[];
+static VTBL_ENTRY alt_thunk_names81[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61303fooEv,_ZTv0_n16_N6dd61303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61303fooEv,_ZThn16_N6dd61303fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee661303fooEv,_ZTv0_n16_N7ee661303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee661303fooEv,_ZThn16_N7ee661303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee66130 = { "ee66130", // class name
+ bases_ee66130, 4,
+ &(vtc_ee66130[0]), // expected_vtbl_contents
+ &(vtt_ee66130[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee66130),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66130),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee66130),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names81,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee76130 : virtual dd6130 {
+ int e;
+ virtual void foo(); // _ZN7ee761303fooEv
+ virtual void bar(); // _ZN7ee761303barEv
+ ~ee76130(); // tgen
+ ee76130(); // tgen
+};
+//SIG(1 ee76130) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76130 ::foo(){vfunc_called(this, "_ZN7ee761303fooEv");}
+void ee76130 ::bar(){vfunc_called(this, "_ZN7ee761303barEv");}
+ee76130 ::~ee76130(){ note_dtor("ee76130", this);} // tgen
+ee76130 ::ee76130(){ note_ctor("ee76130", this);} // tgen
+
+static void Test_ee76130()
+{
+ extern Class_Descriptor cd_ee76130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee76130, buf);
+ ee76130 *dp, &lv = *(dp=new (buf) ee76130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee76130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(44,28), "ee76130");
+ check_base_class_offset(lv, (bb30*)(cc130*)(dd6130*), ABISELECT(32,20), "ee76130");
+ check_base_class_offset(lv, (cc130*)(dd6130*), ABISELECT(16,8), "ee76130");
+ check_base_class_offset(lv, (dd6130*), ABISELECT(16,8), "ee76130");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76130.e");
+ test_class_info(&lv, &cd_ee76130);
+ dp->~ee76130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76130(Test_ee76130, "ee76130", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee76130C1Ev();
+extern void _ZN7ee76130D1Ev();
+Name_Map name_map_ee76130[] = {
+ NSPAIR(_ZN7ee76130C1Ev),
+ NSPAIR(_ZN7ee76130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+extern Class_Descriptor cd_dd6130;
+extern VTBL_ENTRY _ZTI6dd6130[];
+extern VTBL_ENTRY _ZTV6dd6130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6130[];
+static Base_Class bases_ee76130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(32,20), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6130, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee76130[];
+extern void _ZN7ee761303fooEv();
+extern void _ZN7ee761303barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee761303barEv,_ZTv0_n20_N7ee761303barEv)();
+extern void ABISELECT(_ZThn16_N7ee761303barEv,_ZThn8_N7ee761303barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee761303fooEv,_ZTv0_n24_N7ee761303fooEv)();
+extern void ABISELECT(_ZThn16_N7ee761303fooEv,_ZThn8_N7ee761303fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee761303fooEv,_ZTv0_n16_N7ee761303fooEv)();
+extern void ABISELECT(_ZThn32_N7ee761303fooEv,_ZThn20_N7ee761303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76130[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76130[0]),
+ (VTBL_ENTRY)&_ZN7ee761303fooEv,
+ (VTBL_ENTRY)&_ZN7ee761303barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee761303barEv,_ZTv0_n20_N7ee761303barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee761303fooEv,_ZTv0_n24_N7ee761303fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee76130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee761303fooEv,_ZTv0_n16_N7ee761303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee76130[];
+extern void _ZN6dd61303barEv();
+extern void _ZN6dd61303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6130__7ee76130[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6130[0]),
+ (VTBL_ENTRY)&_ZN6dd61303barEv,
+ (VTBL_ENTRY)&_ZN6dd61303fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1306dd6130__7ee76130[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc1306dd6130__7ee76130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd61303fooEv,_ZTv0_n16_N6dd61303fooEv)();
+extern void ABISELECT(_ZThn16_N6dd61303fooEv,_ZThn12_N6dd61303fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb30__6dd6130__7ee76130[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61303fooEv,_ZTv0_n16_N6dd61303fooEv),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__7ee76130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee76130[] = {
+ {&(_ZTV7ee76130[5]), 5,20},
+ {&(_ZTV7ee76130[13]), 13,20},
+ {&(_ZTV7ee76130[19]), 19,20},
+ {&(_tg__ZTV6dd6130__7ee76130[4]), 4,6},
+ {&(_tg__ZTV5cc1306dd6130__7ee76130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc1306dd6130__7ee76130[4]), 4,5},
+ {&(_tg__ZTV4bb30__6dd6130__7ee76130[4]), 4,5},
+ {&(_tg__ZTV4bb30__7ee76130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee76130[];
+extern VTBL_ENTRY _ZTV7ee76130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76130[];
+static VTBL_ENTRY alt_thunk_names82[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61303fooEv,_ZTv0_n16_N6dd61303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61303fooEv,_ZThn12_N6dd61303fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee761303fooEv,_ZTv0_n16_N7ee761303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee761303fooEv,_ZThn20_N7ee761303fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee761303fooEv,_ZTv0_n24_N7ee761303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee761303fooEv,_ZThn8_N7ee761303fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee761303barEv,_ZTv0_n20_N7ee761303barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee761303barEv,_ZThn8_N7ee761303barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76130 = { "ee76130", // class name
+ bases_ee76130, 4,
+ &(vtc_ee76130[0]), // expected_vtbl_contents
+ &(vtt_ee76130[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee76130),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76130),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76130),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names82,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7130 : virtual cc130 {
+ int d;
+ virtual void bar(); // _ZN6dd71303barEv
+ virtual void foo(); // _ZN6dd71303fooEv
+ ~dd7130(); // tgen
+ dd7130(); // tgen
+};
+//SIG(-1 dd7130) C1{ VBC2{ VBC3{ VBC4{ Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void dd7130 ::bar(){vfunc_called(this, "_ZN6dd71303barEv");}
+void dd7130 ::foo(){vfunc_called(this, "_ZN6dd71303fooEv");}
+dd7130 ::~dd7130(){ note_dtor("dd7130", this);} // tgen
+dd7130 ::dd7130(){ note_ctor("dd7130", this);} // tgen
+
+static void Test_dd7130()
+{
+ extern Class_Descriptor cd_dd7130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd7130, buf);
+ dd7130 *dp, &lv = *(dp=new (buf) dd7130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd7130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(44,24), "dd7130");
+ check_base_class_offset(lv, (bb30*)(cc130*), ABISELECT(32,16), "dd7130");
+ check_base_class_offset(lv, (cc130*), ABISELECT(16,8), "dd7130");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7130.d");
+ test_class_info(&lv, &cd_dd7130);
+ dp->~dd7130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7130(Test_dd7130, "dd7130", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd7130C1Ev();
+extern void _ZN6dd7130D1Ev();
+Name_Map name_map_dd7130[] = {
+ NSPAIR(_ZN6dd7130C1Ev),
+ NSPAIR(_ZN6dd7130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+static Base_Class bases_dd7130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, 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 _ZTI6dd7130[];
+extern void _ZN6dd71303barEv();
+extern void _ZN6dd71303fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd71303fooEv,_ZTv0_n16_N6dd71303fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71303fooEv,_ZThn16_N6dd71303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7130[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7130[0]),
+ (VTBL_ENTRY)&_ZN6dd71303barEv,
+ (VTBL_ENTRY)&_ZN6dd71303fooEv,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7130[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71303fooEv,_ZTv0_n16_N6dd71303fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd7130[];
+static VTBL_ENTRY _tg__ZTV5cc130__6dd7130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc130__6dd7130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__6dd7130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_dd7130[] = {
+ {&(_ZTV6dd7130[5]), 5,16},
+ {&(_ZTV6dd7130[11]), 11,16},
+ {&(_ZTV6dd7130[15]), 15,16},
+ {&(_tg__ZTV5cc130__6dd7130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc130__6dd7130[4]), 4,5},
+ {&(_tg__ZTV4bb30__6dd7130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd7130[];
+extern VTBL_ENTRY _ZTV6dd7130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7130[];
+static VTBL_ENTRY alt_thunk_names83[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71303fooEv,_ZTv0_n16_N6dd71303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71303fooEv,_ZThn16_N6dd71303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7130 = { "dd7130", // class name
+ bases_dd7130, 3,
+ &(vtc_dd7130[0]), // expected_vtbl_contents
+ &(vtt_dd7130[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd7130),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7130),16, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7130),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names83,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07130 : dd7130 {
+ int e;
+ ~ee07130(); // tgen
+ ee07130(); // tgen
+};
+//SIG(1 ee07130) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee07130 ::~ee07130(){ note_dtor("ee07130", this);} // tgen
+ee07130 ::ee07130(){ note_ctor("ee07130", this);} // tgen
+
+static void Test_ee07130()
+{
+ extern Class_Descriptor cd_ee07130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee07130, buf);
+ ee07130 *dp, &lv = *(dp=new (buf) ee07130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee07130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(44,28), "ee07130");
+ check_base_class_offset(lv, (bb30*)(cc130*), ABISELECT(32,20), "ee07130");
+ check_base_class_offset(lv, (cc130*)(dd7130*), ABISELECT(16,12), "ee07130");
+ check_base_class_offset(lv, (dd7130*), 0, "ee07130");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07130.e");
+ test_class_info(&lv, &cd_ee07130);
+ dp->~ee07130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07130(Test_ee07130, "ee07130", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee07130C1Ev();
+extern void _ZN7ee07130D1Ev();
+Name_Map name_map_ee07130[] = {
+ NSPAIR(_ZN7ee07130C1Ev),
+ NSPAIR(_ZN7ee07130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+extern Class_Descriptor cd_dd7130;
+extern VTBL_ENTRY _ZTI6dd7130[];
+extern VTBL_ENTRY _ZTV6dd7130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7130[];
+static Base_Class bases_ee07130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7130, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07130[];
+extern void _ZN6dd71303barEv();
+extern void _ZN6dd71303fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd71303fooEv,_ZTv0_n16_N6dd71303fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71303fooEv,_ZThn20_N6dd71303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07130[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07130[0]),
+ (VTBL_ENTRY)&_ZN6dd71303barEv,
+ (VTBL_ENTRY)&_ZN6dd71303fooEv,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07130[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee07130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71303fooEv,_ZTv0_n16_N6dd71303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee07130[];
+extern void _ZN6dd71303barEv();
+extern void _ZN6dd71303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7130__7ee07130[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7130[0]),
+ (VTBL_ENTRY)&_ZN6dd71303barEv,
+ (VTBL_ENTRY)&_ZN6dd71303fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc130__6dd7130__7ee07130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7130[0]),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd71303fooEv,_ZTv0_n16_N6dd71303fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71303fooEv,_ZThn20_N6dd71303fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb30__6dd7130__7ee07130[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71303fooEv,_ZTv0_n16_N6dd71303fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc130__7ee07130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc130__7ee07130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__7ee07130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee07130[] = {
+ {&(_ZTV7ee07130[5]), 5,16},
+ {&(_tg__ZTV6dd7130__7ee07130[5]), 5,7},
+ {&(_tg__ZTV5cc130__6dd7130__7ee07130[4]), 4,4},
+ {&(_tg__ZTV4bb30__6dd7130__7ee07130[4]), 4,5},
+ {&(_ZTV7ee07130[11]), 11,16},
+ {&(_ZTV7ee07130[15]), 15,16},
+ {&(_tg__ZTV5cc130__7ee07130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc130__7ee07130[4]), 4,5},
+ {&(_tg__ZTV4bb30__7ee07130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee07130[];
+extern VTBL_ENTRY _ZTV7ee07130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07130[];
+static VTBL_ENTRY alt_thunk_names84[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71303fooEv,_ZTv0_n16_N6dd71303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71303fooEv,_ZThn20_N6dd71303fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71303fooEv,_ZThn20_N6dd71303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07130 = { "ee07130", // class name
+ bases_ee07130, 4,
+ &(vtc_ee07130[0]), // expected_vtbl_contents
+ &(vtt_ee07130[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee07130),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07130),16, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07130),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names84,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17130 : virtual dd7130 {
+ int e;
+ ~ee17130(); // tgen
+ ee17130(); // tgen
+};
+//SIG(1 ee17130) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee17130 ::~ee17130(){ note_dtor("ee17130", this);} // tgen
+ee17130 ::ee17130(){ note_ctor("ee17130", this);} // tgen
+
+static void Test_ee17130()
+{
+ extern Class_Descriptor cd_ee17130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee17130, buf);
+ ee17130 *dp, &lv = *(dp=new (buf) ee17130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee17130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(60,32), "ee17130");
+ check_base_class_offset(lv, (bb30*)(cc130*), ABISELECT(48,24), "ee17130");
+ check_base_class_offset(lv, (cc130*)(dd7130*), ABISELECT(32,16), "ee17130");
+ check_base_class_offset(lv, (dd7130*), ABISELECT(16,8), "ee17130");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17130.e");
+ test_class_info(&lv, &cd_ee17130);
+ dp->~ee17130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17130(Test_ee17130, "ee17130", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee17130C1Ev();
+extern void _ZN7ee17130D1Ev();
+Name_Map name_map_ee17130[] = {
+ NSPAIR(_ZN7ee17130C1Ev),
+ NSPAIR(_ZN7ee17130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+extern Class_Descriptor cd_dd7130;
+extern VTBL_ENTRY _ZTI6dd7130[];
+extern VTBL_ENTRY _ZTV6dd7130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7130[];
+static Base_Class bases_ee17130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,32), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7130, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 7, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee17130[];
+extern void _ZN6dd71303barEv();
+extern void _ZN6dd71303fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd71303fooEv,_ZTv0_n16_N6dd71303fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71303fooEv,_ZThn16_N6dd71303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17130[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17130[0]),
+ 0,
+ 0,
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17130[0]),
+ (VTBL_ENTRY)&_ZN6dd71303barEv,
+ (VTBL_ENTRY)&_ZN6dd71303fooEv,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17130[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee17130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71303fooEv,_ZTv0_n16_N6dd71303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee17130[];
+extern void _ZN6dd71303barEv();
+extern void _ZN6dd71303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7130__7ee17130[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7130[0]),
+ (VTBL_ENTRY)&_ZN6dd71303barEv,
+ (VTBL_ENTRY)&_ZN6dd71303fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc130__6dd7130__7ee17130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7130[0]),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd71303fooEv,_ZTv0_n16_N6dd71303fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71303fooEv,_ZThn16_N6dd71303fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb30__6dd7130__7ee17130[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71303fooEv,_ZTv0_n16_N6dd71303fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc130__7ee17130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc130__7ee17130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__7ee17130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee17130[] = {
+ {&(_ZTV7ee17130[6]), 6,24},
+ {&(_ZTV7ee17130[13]), 13,24},
+ {&(_ZTV7ee17130[19]), 19,24},
+ {&(_ZTV7ee17130[23]), 23,24},
+ {&(_tg__ZTV6dd7130__7ee17130[5]), 5,7},
+ {&(_tg__ZTV5cc130__6dd7130__7ee17130[4]), 4,4},
+ {&(_tg__ZTV4bb30__6dd7130__7ee17130[4]), 4,5},
+ {&(_tg__ZTV5cc130__7ee17130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc130__7ee17130[4]), 4,5},
+ {&(_tg__ZTV4bb30__7ee17130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee17130[];
+extern VTBL_ENTRY _ZTV7ee17130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17130[];
+static VTBL_ENTRY alt_thunk_names85[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71303fooEv,_ZTv0_n16_N6dd71303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71303fooEv,_ZThn16_N6dd71303fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71303fooEv,_ZThn16_N6dd71303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17130 = { "ee17130", // class name
+ bases_ee17130, 4,
+ &(vtc_ee17130[0]), // expected_vtbl_contents
+ &(vtt_ee17130[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee17130),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17130),24, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17130),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names85,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27130 : dd7130 {
+ int e;
+ virtual void foo(); // _ZN7ee271303fooEv
+ ~ee27130(); // tgen
+ ee27130(); // tgen
+};
+//SIG(1 ee27130) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27130 ::foo(){vfunc_called(this, "_ZN7ee271303fooEv");}
+ee27130 ::~ee27130(){ note_dtor("ee27130", this);} // tgen
+ee27130 ::ee27130(){ note_ctor("ee27130", this);} // tgen
+
+static void Test_ee27130()
+{
+ extern Class_Descriptor cd_ee27130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee27130, buf);
+ ee27130 *dp, &lv = *(dp=new (buf) ee27130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee27130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(44,28), "ee27130");
+ check_base_class_offset(lv, (bb30*)(cc130*), ABISELECT(32,20), "ee27130");
+ check_base_class_offset(lv, (cc130*)(dd7130*), ABISELECT(16,12), "ee27130");
+ check_base_class_offset(lv, (dd7130*), 0, "ee27130");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27130.e");
+ test_class_info(&lv, &cd_ee27130);
+ dp->~ee27130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27130(Test_ee27130, "ee27130", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee27130C1Ev();
+extern void _ZN7ee27130D1Ev();
+Name_Map name_map_ee27130[] = {
+ NSPAIR(_ZN7ee27130C1Ev),
+ NSPAIR(_ZN7ee27130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+extern Class_Descriptor cd_dd7130;
+extern VTBL_ENTRY _ZTI6dd7130[];
+extern VTBL_ENTRY _ZTV6dd7130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7130[];
+static Base_Class bases_ee27130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7130, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27130[];
+extern void _ZN6dd71303barEv();
+extern void _ZN7ee271303fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee271303fooEv,_ZTv0_n16_N7ee271303fooEv)();
+extern void ABISELECT(_ZThn32_N7ee271303fooEv,_ZThn20_N7ee271303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27130[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27130[0]),
+ (VTBL_ENTRY)&_ZN6dd71303barEv,
+ (VTBL_ENTRY)&_ZN7ee271303fooEv,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27130[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee27130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee271303fooEv,_ZTv0_n16_N7ee271303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee27130[];
+extern void _ZN6dd71303barEv();
+extern void _ZN6dd71303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7130__7ee27130[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7130[0]),
+ (VTBL_ENTRY)&_ZN6dd71303barEv,
+ (VTBL_ENTRY)&_ZN6dd71303fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc130__6dd7130__7ee27130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7130[0]),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd71303fooEv,_ZTv0_n16_N6dd71303fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71303fooEv,_ZThn20_N6dd71303fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb30__6dd7130__7ee27130[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71303fooEv,_ZTv0_n16_N6dd71303fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc130__7ee27130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc130__7ee27130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__7ee27130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee27130[] = {
+ {&(_ZTV7ee27130[5]), 5,16},
+ {&(_tg__ZTV6dd7130__7ee27130[5]), 5,7},
+ {&(_tg__ZTV5cc130__6dd7130__7ee27130[4]), 4,4},
+ {&(_tg__ZTV4bb30__6dd7130__7ee27130[4]), 4,5},
+ {&(_ZTV7ee27130[11]), 11,16},
+ {&(_ZTV7ee27130[15]), 15,16},
+ {&(_tg__ZTV5cc130__7ee27130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc130__7ee27130[4]), 4,5},
+ {&(_tg__ZTV4bb30__7ee27130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee27130[];
+extern VTBL_ENTRY _ZTV7ee27130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27130[];
+static VTBL_ENTRY alt_thunk_names86[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71303fooEv,_ZTv0_n16_N6dd71303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71303fooEv,_ZThn20_N6dd71303fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee271303fooEv,_ZTv0_n16_N7ee271303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee271303fooEv,_ZThn20_N7ee271303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27130 = { "ee27130", // class name
+ bases_ee27130, 4,
+ &(vtc_ee27130[0]), // expected_vtbl_contents
+ &(vtt_ee27130[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee27130),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27130),16, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27130),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names86,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37130 : virtual dd7130 {
+ int e;
+ virtual void foo(); // _ZN7ee371303fooEv
+ ~ee37130(); // tgen
+ ee37130(); // tgen
+};
+//SIG(1 ee37130) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37130 ::foo(){vfunc_called(this, "_ZN7ee371303fooEv");}
+ee37130 ::~ee37130(){ note_dtor("ee37130", this);} // tgen
+ee37130 ::ee37130(){ note_ctor("ee37130", this);} // tgen
+
+static void Test_ee37130()
+{
+ extern Class_Descriptor cd_ee37130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee37130, buf);
+ ee37130 *dp, &lv = *(dp=new (buf) ee37130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee37130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(60,32), "ee37130");
+ check_base_class_offset(lv, (bb30*)(cc130*), ABISELECT(48,24), "ee37130");
+ check_base_class_offset(lv, (cc130*)(dd7130*), ABISELECT(32,16), "ee37130");
+ check_base_class_offset(lv, (dd7130*), ABISELECT(16,8), "ee37130");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37130.e");
+ test_class_info(&lv, &cd_ee37130);
+ dp->~ee37130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37130(Test_ee37130, "ee37130", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee37130C1Ev();
+extern void _ZN7ee37130D1Ev();
+Name_Map name_map_ee37130[] = {
+ NSPAIR(_ZN7ee37130C1Ev),
+ NSPAIR(_ZN7ee37130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+extern Class_Descriptor cd_dd7130;
+extern VTBL_ENTRY _ZTI6dd7130[];
+extern VTBL_ENTRY _ZTV6dd7130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7130[];
+static Base_Class bases_ee37130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,32), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7130, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 7, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee37130[];
+extern void _ZN7ee371303fooEv();
+extern void _ZN6dd71303barEv();
+extern void ABISELECT(_ZTv0_n56_N7ee371303fooEv,_ZTv0_n28_N7ee371303fooEv)();
+extern void ABISELECT(_ZThn16_N7ee371303fooEv,_ZThn8_N7ee371303fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee371303fooEv,_ZTv0_n16_N7ee371303fooEv)();
+extern void ABISELECT(_ZThn48_N7ee371303fooEv,_ZThn24_N7ee371303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37130[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37130[0]),
+ (VTBL_ENTRY)&_ZN7ee371303fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37130[0]),
+ (VTBL_ENTRY)&_ZN6dd71303barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n56_N7ee371303fooEv,_ZTv0_n28_N7ee371303fooEv),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37130[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee37130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee371303fooEv,_ZTv0_n16_N7ee371303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee37130[];
+extern void _ZN6dd71303barEv();
+extern void _ZN6dd71303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7130__7ee37130[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7130[0]),
+ (VTBL_ENTRY)&_ZN6dd71303barEv,
+ (VTBL_ENTRY)&_ZN6dd71303fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc130__6dd7130__7ee37130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7130[0]),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd71303fooEv,_ZTv0_n16_N6dd71303fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71303fooEv,_ZThn16_N6dd71303fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb30__6dd7130__7ee37130[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71303fooEv,_ZTv0_n16_N6dd71303fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc130__7ee37130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc130__7ee37130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__7ee37130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee37130[] = {
+ {&(_ZTV7ee37130[6]), 6,25},
+ {&(_ZTV7ee37130[14]), 14,25},
+ {&(_ZTV7ee37130[20]), 20,25},
+ {&(_ZTV7ee37130[24]), 24,25},
+ {&(_tg__ZTV6dd7130__7ee37130[5]), 5,7},
+ {&(_tg__ZTV5cc130__6dd7130__7ee37130[4]), 4,4},
+ {&(_tg__ZTV4bb30__6dd7130__7ee37130[4]), 4,5},
+ {&(_tg__ZTV5cc130__7ee37130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc130__7ee37130[4]), 4,5},
+ {&(_tg__ZTV4bb30__7ee37130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee37130[];
+extern VTBL_ENTRY _ZTV7ee37130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37130[];
+static VTBL_ENTRY alt_thunk_names87[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71303fooEv,_ZTv0_n16_N6dd71303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71303fooEv,_ZThn16_N6dd71303fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee371303fooEv,_ZTv0_n16_N7ee371303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee371303fooEv,_ZThn24_N7ee371303fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n56_N7ee371303fooEv,_ZTv0_n28_N7ee371303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee371303fooEv,_ZThn8_N7ee371303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37130 = { "ee37130", // class name
+ bases_ee37130, 4,
+ &(vtc_ee37130[0]), // expected_vtbl_contents
+ &(vtt_ee37130[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee37130),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37130),25, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37130),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names87,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47130 : dd7130 {
+ int e;
+ virtual void bar(); // _ZN7ee471303barEv
+ ~ee47130(); // tgen
+ ee47130(); // tgen
+};
+//SIG(1 ee47130) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47130 ::bar(){vfunc_called(this, "_ZN7ee471303barEv");}
+ee47130 ::~ee47130(){ note_dtor("ee47130", this);} // tgen
+ee47130 ::ee47130(){ note_ctor("ee47130", this);} // tgen
+
+static void Test_ee47130()
+{
+ extern Class_Descriptor cd_ee47130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee47130, buf);
+ ee47130 *dp, &lv = *(dp=new (buf) ee47130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee47130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(44,28), "ee47130");
+ check_base_class_offset(lv, (bb30*)(cc130*), ABISELECT(32,20), "ee47130");
+ check_base_class_offset(lv, (cc130*)(dd7130*), ABISELECT(16,12), "ee47130");
+ check_base_class_offset(lv, (dd7130*), 0, "ee47130");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47130.e");
+ test_class_info(&lv, &cd_ee47130);
+ dp->~ee47130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47130(Test_ee47130, "ee47130", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee47130C1Ev();
+extern void _ZN7ee47130D1Ev();
+Name_Map name_map_ee47130[] = {
+ NSPAIR(_ZN7ee47130C1Ev),
+ NSPAIR(_ZN7ee47130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+extern Class_Descriptor cd_dd7130;
+extern VTBL_ENTRY _ZTI6dd7130[];
+extern VTBL_ENTRY _ZTV6dd7130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7130[];
+static Base_Class bases_ee47130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7130, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47130[];
+extern void _ZN7ee471303barEv();
+extern void _ZN6dd71303fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd71303fooEv,_ZTv0_n16_N6dd71303fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71303fooEv,_ZThn20_N6dd71303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47130[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47130[0]),
+ (VTBL_ENTRY)&_ZN7ee471303barEv,
+ (VTBL_ENTRY)&_ZN6dd71303fooEv,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47130[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee47130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71303fooEv,_ZTv0_n16_N6dd71303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee47130[];
+extern void _ZN6dd71303barEv();
+extern void _ZN6dd71303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7130__7ee47130[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7130[0]),
+ (VTBL_ENTRY)&_ZN6dd71303barEv,
+ (VTBL_ENTRY)&_ZN6dd71303fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc130__6dd7130__7ee47130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7130[0]),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd71303fooEv,_ZTv0_n16_N6dd71303fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71303fooEv,_ZThn20_N6dd71303fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb30__6dd7130__7ee47130[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71303fooEv,_ZTv0_n16_N6dd71303fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc130__7ee47130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc130__7ee47130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__7ee47130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee47130[] = {
+ {&(_ZTV7ee47130[5]), 5,16},
+ {&(_tg__ZTV6dd7130__7ee47130[5]), 5,7},
+ {&(_tg__ZTV5cc130__6dd7130__7ee47130[4]), 4,4},
+ {&(_tg__ZTV4bb30__6dd7130__7ee47130[4]), 4,5},
+ {&(_ZTV7ee47130[11]), 11,16},
+ {&(_ZTV7ee47130[15]), 15,16},
+ {&(_tg__ZTV5cc130__7ee47130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc130__7ee47130[4]), 4,5},
+ {&(_tg__ZTV4bb30__7ee47130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee47130[];
+extern VTBL_ENTRY _ZTV7ee47130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47130[];
+static VTBL_ENTRY alt_thunk_names88[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71303fooEv,_ZTv0_n16_N6dd71303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71303fooEv,_ZThn20_N6dd71303fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71303fooEv,_ZThn20_N6dd71303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47130 = { "ee47130", // class name
+ bases_ee47130, 4,
+ &(vtc_ee47130[0]), // expected_vtbl_contents
+ &(vtt_ee47130[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee47130),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47130),16, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47130),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names88,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57130 : virtual dd7130 {
+ int e;
+ virtual void bar(); // _ZN7ee571303barEv
+ ~ee57130(); // tgen
+ ee57130(); // tgen
+};
+//SIG(1 ee57130) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57130 ::bar(){vfunc_called(this, "_ZN7ee571303barEv");}
+ee57130 ::~ee57130(){ note_dtor("ee57130", this);} // tgen
+ee57130 ::ee57130(){ note_ctor("ee57130", this);} // tgen
+
+static void Test_ee57130()
+{
+ extern Class_Descriptor cd_ee57130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee57130, buf);
+ ee57130 *dp, &lv = *(dp=new (buf) ee57130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee57130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(60,32), "ee57130");
+ check_base_class_offset(lv, (bb30*)(cc130*), ABISELECT(48,24), "ee57130");
+ check_base_class_offset(lv, (cc130*)(dd7130*), ABISELECT(32,16), "ee57130");
+ check_base_class_offset(lv, (dd7130*), ABISELECT(16,8), "ee57130");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57130.e");
+ test_class_info(&lv, &cd_ee57130);
+ dp->~ee57130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57130(Test_ee57130, "ee57130", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee57130C1Ev();
+extern void _ZN7ee57130D1Ev();
+Name_Map name_map_ee57130[] = {
+ NSPAIR(_ZN7ee57130C1Ev),
+ NSPAIR(_ZN7ee57130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+extern Class_Descriptor cd_dd7130;
+extern VTBL_ENTRY _ZTI6dd7130[];
+extern VTBL_ENTRY _ZTV6dd7130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7130[];
+static Base_Class bases_ee57130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,32), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7130, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 7, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee57130[];
+extern void _ZN7ee571303barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee571303barEv,_ZTv0_n24_N7ee571303barEv)();
+extern void ABISELECT(_ZThn16_N7ee571303barEv,_ZThn8_N7ee571303barEv)() __attribute__((weak));
+extern void _ZN6dd71303fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd71303fooEv,_ZTv0_n16_N6dd71303fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71303fooEv,_ZThn16_N6dd71303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57130[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57130[0]),
+ (VTBL_ENTRY)&_ZN7ee571303barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee571303barEv,_ZTv0_n24_N7ee571303barEv),
+ (VTBL_ENTRY)&_ZN6dd71303fooEv,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57130[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee57130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71303fooEv,_ZTv0_n16_N6dd71303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee57130[];
+extern void _ZN6dd71303barEv();
+extern void _ZN6dd71303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7130__7ee57130[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7130[0]),
+ (VTBL_ENTRY)&_ZN6dd71303barEv,
+ (VTBL_ENTRY)&_ZN6dd71303fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc130__6dd7130__7ee57130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7130[0]),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd71303fooEv,_ZTv0_n16_N6dd71303fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71303fooEv,_ZThn16_N6dd71303fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb30__6dd7130__7ee57130[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71303fooEv,_ZTv0_n16_N6dd71303fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc130__7ee57130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc130__7ee57130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__7ee57130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee57130[] = {
+ {&(_ZTV7ee57130[6]), 6,25},
+ {&(_ZTV7ee57130[14]), 14,25},
+ {&(_ZTV7ee57130[20]), 20,25},
+ {&(_ZTV7ee57130[24]), 24,25},
+ {&(_tg__ZTV6dd7130__7ee57130[5]), 5,7},
+ {&(_tg__ZTV5cc130__6dd7130__7ee57130[4]), 4,4},
+ {&(_tg__ZTV4bb30__6dd7130__7ee57130[4]), 4,5},
+ {&(_tg__ZTV5cc130__7ee57130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc130__7ee57130[4]), 4,5},
+ {&(_tg__ZTV4bb30__7ee57130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee57130[];
+extern VTBL_ENTRY _ZTV7ee57130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57130[];
+static VTBL_ENTRY alt_thunk_names89[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71303fooEv,_ZTv0_n16_N6dd71303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71303fooEv,_ZThn16_N6dd71303fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71303fooEv,_ZThn16_N6dd71303fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee571303barEv,_ZTv0_n24_N7ee571303barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee571303barEv,_ZThn8_N7ee571303barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57130 = { "ee57130", // class name
+ bases_ee57130, 4,
+ &(vtc_ee57130[0]), // expected_vtbl_contents
+ &(vtt_ee57130[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee57130),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57130),25, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57130),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names89,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67130 : dd7130 {
+ int e;
+ virtual void foo(); // _ZN7ee671303fooEv
+ virtual void bar(); // _ZN7ee671303barEv
+ ~ee67130(); // tgen
+ ee67130(); // tgen
+};
+//SIG(1 ee67130) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67130 ::foo(){vfunc_called(this, "_ZN7ee671303fooEv");}
+void ee67130 ::bar(){vfunc_called(this, "_ZN7ee671303barEv");}
+ee67130 ::~ee67130(){ note_dtor("ee67130", this);} // tgen
+ee67130 ::ee67130(){ note_ctor("ee67130", this);} // tgen
+
+static void Test_ee67130()
+{
+ extern Class_Descriptor cd_ee67130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee67130, buf);
+ ee67130 *dp, &lv = *(dp=new (buf) ee67130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee67130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(44,28), "ee67130");
+ check_base_class_offset(lv, (bb30*)(cc130*), ABISELECT(32,20), "ee67130");
+ check_base_class_offset(lv, (cc130*)(dd7130*), ABISELECT(16,12), "ee67130");
+ check_base_class_offset(lv, (dd7130*), 0, "ee67130");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67130.e");
+ test_class_info(&lv, &cd_ee67130);
+ dp->~ee67130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67130(Test_ee67130, "ee67130", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee67130C1Ev();
+extern void _ZN7ee67130D1Ev();
+Name_Map name_map_ee67130[] = {
+ NSPAIR(_ZN7ee67130C1Ev),
+ NSPAIR(_ZN7ee67130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+extern Class_Descriptor cd_dd7130;
+extern VTBL_ENTRY _ZTI6dd7130[];
+extern VTBL_ENTRY _ZTV6dd7130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7130[];
+static Base_Class bases_ee67130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7130, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67130[];
+extern void _ZN7ee671303barEv();
+extern void _ZN7ee671303fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee671303fooEv,_ZTv0_n16_N7ee671303fooEv)();
+extern void ABISELECT(_ZThn32_N7ee671303fooEv,_ZThn20_N7ee671303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67130[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67130[0]),
+ (VTBL_ENTRY)&_ZN7ee671303barEv,
+ (VTBL_ENTRY)&_ZN7ee671303fooEv,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67130[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee67130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee671303fooEv,_ZTv0_n16_N7ee671303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee67130[];
+extern void _ZN6dd71303barEv();
+extern void _ZN6dd71303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7130__7ee67130[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7130[0]),
+ (VTBL_ENTRY)&_ZN6dd71303barEv,
+ (VTBL_ENTRY)&_ZN6dd71303fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc130__6dd7130__7ee67130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7130[0]),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd71303fooEv,_ZTv0_n16_N6dd71303fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71303fooEv,_ZThn20_N6dd71303fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb30__6dd7130__7ee67130[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71303fooEv,_ZTv0_n16_N6dd71303fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc130__7ee67130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc130__7ee67130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__7ee67130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee67130[] = {
+ {&(_ZTV7ee67130[5]), 5,16},
+ {&(_tg__ZTV6dd7130__7ee67130[5]), 5,7},
+ {&(_tg__ZTV5cc130__6dd7130__7ee67130[4]), 4,4},
+ {&(_tg__ZTV4bb30__6dd7130__7ee67130[4]), 4,5},
+ {&(_ZTV7ee67130[11]), 11,16},
+ {&(_ZTV7ee67130[15]), 15,16},
+ {&(_tg__ZTV5cc130__7ee67130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc130__7ee67130[4]), 4,5},
+ {&(_tg__ZTV4bb30__7ee67130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee67130[];
+extern VTBL_ENTRY _ZTV7ee67130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67130[];
+static VTBL_ENTRY alt_thunk_names90[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71303fooEv,_ZTv0_n16_N6dd71303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71303fooEv,_ZThn20_N6dd71303fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee671303fooEv,_ZTv0_n16_N7ee671303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee671303fooEv,_ZThn20_N7ee671303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67130 = { "ee67130", // class name
+ bases_ee67130, 4,
+ &(vtc_ee67130[0]), // expected_vtbl_contents
+ &(vtt_ee67130[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee67130),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67130),16, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67130),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names90,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77130 : virtual dd7130 {
+ int e;
+ virtual void foo(); // _ZN7ee771303fooEv
+ virtual void bar(); // _ZN7ee771303barEv
+ ~ee77130(); // tgen
+ ee77130(); // tgen
+};
+//SIG(1 ee77130) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77130 ::foo(){vfunc_called(this, "_ZN7ee771303fooEv");}
+void ee77130 ::bar(){vfunc_called(this, "_ZN7ee771303barEv");}
+ee77130 ::~ee77130(){ note_dtor("ee77130", this);} // tgen
+ee77130 ::ee77130(){ note_ctor("ee77130", this);} // tgen
+
+static void Test_ee77130()
+{
+ extern Class_Descriptor cd_ee77130;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee77130, buf);
+ ee77130 *dp, &lv = *(dp=new (buf) ee77130());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee77130)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77130)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(60,32), "ee77130");
+ check_base_class_offset(lv, (bb30*)(cc130*), ABISELECT(48,24), "ee77130");
+ check_base_class_offset(lv, (cc130*)(dd7130*), ABISELECT(32,16), "ee77130");
+ check_base_class_offset(lv, (dd7130*), ABISELECT(16,8), "ee77130");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77130.e");
+ test_class_info(&lv, &cd_ee77130);
+ dp->~ee77130();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77130(Test_ee77130, "ee77130", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee77130C1Ev();
+extern void _ZN7ee77130D1Ev();
+Name_Map name_map_ee77130[] = {
+ NSPAIR(_ZN7ee77130C1Ev),
+ NSPAIR(_ZN7ee77130D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc130;
+extern VTBL_ENTRY _ZTI5cc130[];
+extern VTBL_ENTRY _ZTV5cc130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc130[];
+extern Class_Descriptor cd_dd7130;
+extern VTBL_ENTRY _ZTI6dd7130[];
+extern VTBL_ENTRY _ZTV6dd7130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7130[];
+static Base_Class bases_ee77130[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,32), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc130, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7130, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 7, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee77130[];
+extern void _ZN7ee771303fooEv();
+extern void _ZN7ee771303barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee771303barEv,_ZTv0_n24_N7ee771303barEv)();
+extern void ABISELECT(_ZThn16_N7ee771303barEv,_ZThn8_N7ee771303barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n56_N7ee771303fooEv,_ZTv0_n28_N7ee771303fooEv)();
+extern void ABISELECT(_ZThn16_N7ee771303fooEv,_ZThn8_N7ee771303fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee771303fooEv,_ZTv0_n16_N7ee771303fooEv)();
+extern void ABISELECT(_ZThn48_N7ee771303fooEv,_ZThn24_N7ee771303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77130[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77130[0]),
+ (VTBL_ENTRY)&_ZN7ee771303fooEv,
+ (VTBL_ENTRY)&_ZN7ee771303barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee771303barEv,_ZTv0_n24_N7ee771303barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n56_N7ee771303fooEv,_ZTv0_n28_N7ee771303fooEv),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77130[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee77130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee771303fooEv,_ZTv0_n16_N7ee771303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee77130[];
+extern void _ZN6dd71303barEv();
+extern void _ZN6dd71303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7130__7ee77130[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7130[0]),
+ (VTBL_ENTRY)&_ZN6dd71303barEv,
+ (VTBL_ENTRY)&_ZN6dd71303fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc130__6dd7130__7ee77130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7130[0]),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd71303fooEv,_ZTv0_n16_N6dd71303fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71303fooEv,_ZThn16_N6dd71303fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb30__6dd7130__7ee77130[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7130[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71303fooEv,_ZTv0_n16_N6dd71303fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc130__7ee77130[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc130__7ee77130[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc130[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__7ee77130[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee77130[] = {
+ {&(_ZTV7ee77130[6]), 6,26},
+ {&(_ZTV7ee77130[15]), 15,26},
+ {&(_ZTV7ee77130[21]), 21,26},
+ {&(_ZTV7ee77130[25]), 25,26},
+ {&(_tg__ZTV6dd7130__7ee77130[5]), 5,7},
+ {&(_tg__ZTV5cc130__6dd7130__7ee77130[4]), 4,4},
+ {&(_tg__ZTV4bb30__6dd7130__7ee77130[4]), 4,5},
+ {&(_tg__ZTV5cc130__7ee77130[4]), 4,4},
+ {&(_tg__ZTV4bb30__5cc130__7ee77130[4]), 4,5},
+ {&(_tg__ZTV4bb30__7ee77130[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee77130[];
+extern VTBL_ENTRY _ZTV7ee77130[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77130[];
+static VTBL_ENTRY alt_thunk_names91[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71303fooEv,_ZTv0_n16_N6dd71303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71303fooEv,_ZThn16_N6dd71303fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee771303fooEv,_ZTv0_n16_N7ee771303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee771303fooEv,_ZThn24_N7ee771303fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n56_N7ee771303fooEv,_ZTv0_n28_N7ee771303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee771303fooEv,_ZThn8_N7ee771303fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee771303barEv,_ZTv0_n24_N7ee771303barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee771303barEv,_ZThn8_N7ee771303barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77130 = { "ee77130", // class name
+ bases_ee77130, 4,
+ &(vtc_ee77130[0]), // expected_vtbl_contents
+ &(vtt_ee77130[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee77130),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77130),26, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77130),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names91,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc230 : bb30 {
+ int c;
+ virtual void foo(); // _ZN5cc2303fooEv
+ ~cc230(); // tgen
+ cc230(); // tgen
+};
+//SIG(-1 cc230) C1{ BC2{ VBC3{ Fi} v1 Fi} v1 Fi}
+
+
+void cc230 ::foo(){vfunc_called(this, "_ZN5cc2303fooEv");}
+cc230 ::~cc230(){ note_dtor("cc230", this);} // tgen
+cc230 ::cc230(){ note_ctor("cc230", this);} // tgen
+
+static void Test_cc230()
+{
+ extern Class_Descriptor cd_cc230;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,5)];
+ init_test(&cd_cc230, buf);
+ cc230 *dp, &lv = *(dp=new (buf) cc230());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,16), "sizeof(cc230)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc230)");
+ check_base_class_offset(lv, (aa0*)(bb30*), ABISELECT(16,12), "cc230");
+ check_base_class_offset(lv, (bb30*), 0, "cc230");
+ check_field_offset(lv, c, ABISELECT(12,8), "cc230.c");
+ test_class_info(&lv, &cd_cc230);
+ dp->~cc230();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc230(Test_cc230, "cc230", ABISELECT(24,16));
+
+#else // __cplusplus
+
+extern void _ZN5cc230C1Ev();
+extern void _ZN5cc230D1Ev();
+Name_Map name_map_cc230[] = {
+ NSPAIR(_ZN5cc230C1Ev),
+ NSPAIR(_ZN5cc230D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+static Base_Class bases_cc230[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI5cc230[];
+extern void _ZN5cc2303fooEv();
+static VTBL_ENTRY vtc_cc230[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc230[0]),
+ (VTBL_ENTRY)&_ZN5cc2303fooEv,
+};
+extern VTBL_ENTRY _ZTV5cc230[];
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb30__5cc230[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_cc230[] = {
+ {&(_ZTV5cc230[3]), 3,4},
+ {&(_tg__ZTV4bb30__5cc230[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI5cc230[];
+extern VTBL_ENTRY _ZTV5cc230[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc230[];
+Class_Descriptor cd_cc230 = { "cc230", // class name
+ bases_cc230, 2,
+ &(vtc_cc230[0]), // expected_vtbl_contents
+ &(vtt_cc230[0]), // expected_vtt_contents
+ ABISELECT(24,16), // object size
+ NSPAIRA(_ZTI5cc230),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV5cc230),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5cc230),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 dd0230 : cc230 {
+ int d;
+ ~dd0230(); // tgen
+ dd0230(); // tgen
+};
+//SIG(-1 dd0230) C1{ BC2{ BC3{ VBC4{ Fi} v1 Fi} v1 Fi} Fi}
+
+
+dd0230 ::~dd0230(){ note_dtor("dd0230", this);} // tgen
+dd0230 ::dd0230(){ note_ctor("dd0230", this);} // tgen
+
+static void Test_dd0230()
+{
+ extern Class_Descriptor cd_dd0230;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd0230, buf);
+ dd0230 *dp, &lv = *(dp=new (buf) dd0230());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd0230)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0230)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc230*), ABISELECT(20,16), "dd0230");
+ check_base_class_offset(lv, (bb30*)(cc230*), 0, "dd0230");
+ check_base_class_offset(lv, (cc230*), 0, "dd0230");
+ check_field_offset(lv, d, ABISELECT(16,12), "dd0230.d");
+ test_class_info(&lv, &cd_dd0230);
+ dp->~dd0230();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0230(Test_dd0230, "dd0230", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd0230C1Ev();
+extern void _ZN6dd0230D1Ev();
+Name_Map name_map_dd0230[] = {
+ NSPAIR(_ZN6dd0230C1Ev),
+ NSPAIR(_ZN6dd0230D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc230;
+extern VTBL_ENTRY _ZTI5cc230[];
+extern VTBL_ENTRY _ZTV5cc230[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc230[];
+static Base_Class bases_dd0230[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc230, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd0230[];
+extern void _ZN5cc2303fooEv();
+static VTBL_ENTRY vtc_dd0230[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0230[0]),
+ (VTBL_ENTRY)&_ZN5cc2303fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd0230[];
+extern void _ZN5cc2303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc230__6dd0230[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc230[0]),
+ (VTBL_ENTRY)&_ZN5cc2303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc230__6dd0230[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_dd0230[] = {
+ {&(_ZTV6dd0230[3]), 3,4},
+ {&(_tg__ZTV5cc230__6dd0230[3]), 3,4},
+ {&(_tg__ZTV4bb305cc230__6dd0230[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd0230[];
+extern VTBL_ENTRY _ZTV6dd0230[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0230[];
+Class_Descriptor cd_dd0230 = { "dd0230", // class name
+ bases_dd0230, 3,
+ &(vtc_dd0230[0]), // expected_vtbl_contents
+ &(vtt_dd0230[0]), // expected_vtt_contents
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd0230),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0230),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd0230),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 ee00230 : dd0230 {
+ int e;
+ ~ee00230(); // tgen
+ ee00230(); // tgen
+};
+//SIG(1 ee00230) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee00230 ::~ee00230(){ note_dtor("ee00230", this);} // tgen
+ee00230 ::ee00230(){ note_ctor("ee00230", this);} // tgen
+
+static void Test_ee00230()
+{
+ extern Class_Descriptor cd_ee00230;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee00230, buf);
+ ee00230 *dp, &lv = *(dp=new (buf) ee00230());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee00230)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00230)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc230*)(dd0230*), ABISELECT(24,20), "ee00230");
+ check_base_class_offset(lv, (bb30*)(cc230*)(dd0230*), 0, "ee00230");
+ check_base_class_offset(lv, (cc230*)(dd0230*), 0, "ee00230");
+ check_base_class_offset(lv, (dd0230*), 0, "ee00230");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee00230.e");
+ test_class_info(&lv, &cd_ee00230);
+ dp->~ee00230();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00230(Test_ee00230, "ee00230", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee00230C1Ev();
+extern void _ZN7ee00230D1Ev();
+Name_Map name_map_ee00230[] = {
+ NSPAIR(_ZN7ee00230C1Ev),
+ NSPAIR(_ZN7ee00230D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc230;
+extern VTBL_ENTRY _ZTI5cc230[];
+extern VTBL_ENTRY _ZTV5cc230[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc230[];
+extern Class_Descriptor cd_dd0230;
+extern VTBL_ENTRY _ZTI6dd0230[];
+extern VTBL_ENTRY _ZTV6dd0230[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0230[];
+static Base_Class bases_ee00230[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc230, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0230, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00230[];
+extern void _ZN5cc2303fooEv();
+static VTBL_ENTRY vtc_ee00230[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00230[0]),
+ (VTBL_ENTRY)&_ZN5cc2303fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee00230[];
+extern void _ZN5cc2303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0230__7ee00230[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0230[0]),
+ (VTBL_ENTRY)&_ZN5cc2303fooEv,
+};
+extern void _ZN5cc2303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2306dd0230__7ee00230[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc230[0]),
+ (VTBL_ENTRY)&_ZN5cc2303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc2306dd0230__7ee00230[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee00230[] = {
+ {&(_ZTV7ee00230[3]), 3,4},
+ {&(_tg__ZTV6dd0230__7ee00230[3]), 3,4},
+ {&(_tg__ZTV5cc2306dd0230__7ee00230[3]), 3,4},
+ {&(_tg__ZTV4bb305cc2306dd0230__7ee00230[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee00230[];
+extern VTBL_ENTRY _ZTV7ee00230[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee00230[];
+Class_Descriptor cd_ee00230 = { "ee00230", // class name
+ bases_ee00230, 4,
+ &(vtc_ee00230[0]), // expected_vtbl_contents
+ &(vtt_ee00230[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee00230),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00230),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee00230),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee10230 : virtual dd0230 {
+ int e;
+ ~ee10230(); // tgen
+ ee10230(); // tgen
+};
+//SIG(1 ee10230) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee10230 ::~ee10230(){ note_dtor("ee10230", this);} // tgen
+ee10230 ::ee10230(){ note_ctor("ee10230", this);} // tgen
+
+static void Test_ee10230()
+{
+ extern Class_Descriptor cd_ee10230;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee10230, buf);
+ ee10230 *dp, &lv = *(dp=new (buf) ee10230());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee10230)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10230)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc230*)(dd0230*), ABISELECT(36,24), "ee10230");
+ check_base_class_offset(lv, (bb30*)(cc230*)(dd0230*), ABISELECT(16,8), "ee10230");
+ check_base_class_offset(lv, (cc230*)(dd0230*), ABISELECT(16,8), "ee10230");
+ check_base_class_offset(lv, (dd0230*), ABISELECT(16,8), "ee10230");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10230.e");
+ test_class_info(&lv, &cd_ee10230);
+ dp->~ee10230();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10230(Test_ee10230, "ee10230", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee10230C1Ev();
+extern void _ZN7ee10230D1Ev();
+Name_Map name_map_ee10230[] = {
+ NSPAIR(_ZN7ee10230C1Ev),
+ NSPAIR(_ZN7ee10230D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc230;
+extern VTBL_ENTRY _ZTI5cc230[];
+extern VTBL_ENTRY _ZTV5cc230[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc230[];
+extern Class_Descriptor cd_dd0230;
+extern VTBL_ENTRY _ZTI6dd0230[];
+extern VTBL_ENTRY _ZTV6dd0230[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0230[];
+static Base_Class bases_ee10230[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc230, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0230, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee10230[];
+extern void _ZN5cc2303fooEv();
+static VTBL_ENTRY vtc_ee10230[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10230[0]),
+ 0,
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10230[0]),
+ (VTBL_ENTRY)&_ZN5cc2303fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee10230[];
+extern void _ZN5cc2303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0230__7ee10230[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0230[0]),
+ (VTBL_ENTRY)&_ZN5cc2303fooEv,
+};
+extern void _ZN5cc2303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2306dd0230__7ee10230[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc230[0]),
+ (VTBL_ENTRY)&_ZN5cc2303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc2306dd0230__7ee10230[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee10230[] = {
+ {&(_ZTV7ee10230[4]), 4,9},
+ {&(_ZTV7ee10230[8]), 8,9},
+ {&(_tg__ZTV6dd0230__7ee10230[3]), 3,4},
+ {&(_tg__ZTV5cc2306dd0230__7ee10230[3]), 3,4},
+ {&(_tg__ZTV4bb305cc2306dd0230__7ee10230[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee10230[];
+extern VTBL_ENTRY _ZTV7ee10230[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10230[];
+Class_Descriptor cd_ee10230 = { "ee10230", // class name
+ bases_ee10230, 4,
+ &(vtc_ee10230[0]), // expected_vtbl_contents
+ &(vtt_ee10230[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee10230),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10230),9, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10230),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee20230 : dd0230 {
+ int e;
+ virtual void foo(); // _ZN7ee202303fooEv
+ ~ee20230(); // tgen
+ ee20230(); // tgen
+};
+//SIG(1 ee20230) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee20230 ::foo(){vfunc_called(this, "_ZN7ee202303fooEv");}
+ee20230 ::~ee20230(){ note_dtor("ee20230", this);} // tgen
+ee20230 ::ee20230(){ note_ctor("ee20230", this);} // tgen
+
+static void Test_ee20230()
+{
+ extern Class_Descriptor cd_ee20230;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee20230, buf);
+ ee20230 *dp, &lv = *(dp=new (buf) ee20230());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee20230)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20230)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc230*)(dd0230*), ABISELECT(24,20), "ee20230");
+ check_base_class_offset(lv, (bb30*)(cc230*)(dd0230*), 0, "ee20230");
+ check_base_class_offset(lv, (cc230*)(dd0230*), 0, "ee20230");
+ check_base_class_offset(lv, (dd0230*), 0, "ee20230");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee20230.e");
+ test_class_info(&lv, &cd_ee20230);
+ dp->~ee20230();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20230(Test_ee20230, "ee20230", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee20230C1Ev();
+extern void _ZN7ee20230D1Ev();
+Name_Map name_map_ee20230[] = {
+ NSPAIR(_ZN7ee20230C1Ev),
+ NSPAIR(_ZN7ee20230D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc230;
+extern VTBL_ENTRY _ZTI5cc230[];
+extern VTBL_ENTRY _ZTV5cc230[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc230[];
+extern Class_Descriptor cd_dd0230;
+extern VTBL_ENTRY _ZTI6dd0230[];
+extern VTBL_ENTRY _ZTV6dd0230[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0230[];
+static Base_Class bases_ee20230[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc230, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0230, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20230[];
+extern void _ZN7ee202303fooEv();
+static VTBL_ENTRY vtc_ee20230[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20230[0]),
+ (VTBL_ENTRY)&_ZN7ee202303fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee20230[];
+extern void _ZN5cc2303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0230__7ee20230[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0230[0]),
+ (VTBL_ENTRY)&_ZN5cc2303fooEv,
+};
+extern void _ZN5cc2303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2306dd0230__7ee20230[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc230[0]),
+ (VTBL_ENTRY)&_ZN5cc2303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc2306dd0230__7ee20230[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee20230[] = {
+ {&(_ZTV7ee20230[3]), 3,4},
+ {&(_tg__ZTV6dd0230__7ee20230[3]), 3,4},
+ {&(_tg__ZTV5cc2306dd0230__7ee20230[3]), 3,4},
+ {&(_tg__ZTV4bb305cc2306dd0230__7ee20230[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee20230[];
+extern VTBL_ENTRY _ZTV7ee20230[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee20230[];
+Class_Descriptor cd_ee20230 = { "ee20230", // class name
+ bases_ee20230, 4,
+ &(vtc_ee20230[0]), // expected_vtbl_contents
+ &(vtt_ee20230[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee20230),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20230),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee20230),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee30230 : virtual dd0230 {
+ int e;
+ virtual void foo(); // _ZN7ee302303fooEv
+ ~ee30230(); // tgen
+ ee30230(); // tgen
+};
+//SIG(1 ee30230) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee30230 ::foo(){vfunc_called(this, "_ZN7ee302303fooEv");}
+ee30230 ::~ee30230(){ note_dtor("ee30230", this);} // tgen
+ee30230 ::ee30230(){ note_ctor("ee30230", this);} // tgen
+
+static void Test_ee30230()
+{
+ extern Class_Descriptor cd_ee30230;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee30230, buf);
+ ee30230 *dp, &lv = *(dp=new (buf) ee30230());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee30230)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30230)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc230*)(dd0230*), ABISELECT(36,24), "ee30230");
+ check_base_class_offset(lv, (bb30*)(cc230*)(dd0230*), ABISELECT(16,8), "ee30230");
+ check_base_class_offset(lv, (cc230*)(dd0230*), ABISELECT(16,8), "ee30230");
+ check_base_class_offset(lv, (dd0230*), ABISELECT(16,8), "ee30230");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30230.e");
+ test_class_info(&lv, &cd_ee30230);
+ dp->~ee30230();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30230(Test_ee30230, "ee30230", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee30230C1Ev();
+extern void _ZN7ee30230D1Ev();
+Name_Map name_map_ee30230[] = {
+ NSPAIR(_ZN7ee30230C1Ev),
+ NSPAIR(_ZN7ee30230D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc230;
+extern VTBL_ENTRY _ZTI5cc230[];
+extern VTBL_ENTRY _ZTV5cc230[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc230[];
+extern Class_Descriptor cd_dd0230;
+extern VTBL_ENTRY _ZTI6dd0230[];
+extern VTBL_ENTRY _ZTV6dd0230[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0230[];
+static Base_Class bases_ee30230[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc230, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0230, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee30230[];
+extern void _ZN7ee302303fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee302303fooEv,_ZTv0_n16_N7ee302303fooEv)();
+extern void ABISELECT(_ZThn16_N7ee302303fooEv,_ZThn8_N7ee302303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee30230[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30230[0]),
+ (VTBL_ENTRY)&_ZN7ee302303fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30230[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee302303fooEv,_ZTv0_n16_N7ee302303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee30230[];
+extern void _ZN5cc2303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0230__7ee30230[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0230[0]),
+ (VTBL_ENTRY)&_ZN5cc2303fooEv,
+};
+extern void _ZN5cc2303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2306dd0230__7ee30230[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc230[0]),
+ (VTBL_ENTRY)&_ZN5cc2303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc2306dd0230__7ee30230[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee30230[] = {
+ {&(_ZTV7ee30230[4]), 4,10},
+ {&(_ZTV7ee30230[9]), 9,10},
+ {&(_tg__ZTV6dd0230__7ee30230[3]), 3,4},
+ {&(_tg__ZTV5cc2306dd0230__7ee30230[3]), 3,4},
+ {&(_tg__ZTV4bb305cc2306dd0230__7ee30230[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee30230[];
+extern VTBL_ENTRY _ZTV7ee30230[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30230[];
+static VTBL_ENTRY alt_thunk_names92[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee302303fooEv,_ZTv0_n16_N7ee302303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee302303fooEv,_ZThn8_N7ee302303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30230 = { "ee30230", // class name
+ bases_ee30230, 4,
+ &(vtc_ee30230[0]), // expected_vtbl_contents
+ &(vtt_ee30230[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee30230),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30230),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30230),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names92,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40230 : dd0230 {
+ int e;
+ virtual void bar(); // _ZN7ee402303barEv
+ ~ee40230(); // tgen
+ ee40230(); // tgen
+};
+//SIG(1 ee40230) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee40230 ::bar(){vfunc_called(this, "_ZN7ee402303barEv");}
+ee40230 ::~ee40230(){ note_dtor("ee40230", this);} // tgen
+ee40230 ::ee40230(){ note_ctor("ee40230", this);} // tgen
+
+static void Test_ee40230()
+{
+ extern Class_Descriptor cd_ee40230;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee40230, buf);
+ ee40230 *dp, &lv = *(dp=new (buf) ee40230());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee40230)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40230)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc230*)(dd0230*), ABISELECT(24,20), "ee40230");
+ check_base_class_offset(lv, (bb30*)(cc230*)(dd0230*), 0, "ee40230");
+ check_base_class_offset(lv, (cc230*)(dd0230*), 0, "ee40230");
+ check_base_class_offset(lv, (dd0230*), 0, "ee40230");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee40230.e");
+ test_class_info(&lv, &cd_ee40230);
+ dp->~ee40230();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40230(Test_ee40230, "ee40230", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee40230C1Ev();
+extern void _ZN7ee40230D1Ev();
+Name_Map name_map_ee40230[] = {
+ NSPAIR(_ZN7ee40230C1Ev),
+ NSPAIR(_ZN7ee40230D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc230;
+extern VTBL_ENTRY _ZTI5cc230[];
+extern VTBL_ENTRY _ZTV5cc230[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc230[];
+extern Class_Descriptor cd_dd0230;
+extern VTBL_ENTRY _ZTI6dd0230[];
+extern VTBL_ENTRY _ZTV6dd0230[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0230[];
+static Base_Class bases_ee40230[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc230, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0230, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40230[];
+extern void _ZN5cc2303fooEv();
+extern void _ZN7ee402303barEv();
+static VTBL_ENTRY vtc_ee40230[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40230[0]),
+ (VTBL_ENTRY)&_ZN5cc2303fooEv,
+ (VTBL_ENTRY)&_ZN7ee402303barEv,
+};
+extern VTBL_ENTRY _ZTV7ee40230[];
+extern void _ZN5cc2303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0230__7ee40230[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0230[0]),
+ (VTBL_ENTRY)&_ZN5cc2303fooEv,
+};
+extern void _ZN5cc2303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2306dd0230__7ee40230[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc230[0]),
+ (VTBL_ENTRY)&_ZN5cc2303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc2306dd0230__7ee40230[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee40230[] = {
+ {&(_ZTV7ee40230[3]), 3,5},
+ {&(_tg__ZTV6dd0230__7ee40230[3]), 3,4},
+ {&(_tg__ZTV5cc2306dd0230__7ee40230[3]), 3,4},
+ {&(_tg__ZTV4bb305cc2306dd0230__7ee40230[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee40230[];
+extern VTBL_ENTRY _ZTV7ee40230[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee40230[];
+Class_Descriptor cd_ee40230 = { "ee40230", // class name
+ bases_ee40230, 4,
+ &(vtc_ee40230[0]), // expected_vtbl_contents
+ &(vtt_ee40230[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee40230),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40230),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee40230),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee50230 : virtual dd0230 {
+ int e;
+ virtual void bar(); // _ZN7ee502303barEv
+ ~ee50230(); // tgen
+ ee50230(); // tgen
+};
+//SIG(1 ee50230) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee50230 ::bar(){vfunc_called(this, "_ZN7ee502303barEv");}
+ee50230 ::~ee50230(){ note_dtor("ee50230", this);} // tgen
+ee50230 ::ee50230(){ note_ctor("ee50230", this);} // tgen
+
+static void Test_ee50230()
+{
+ extern Class_Descriptor cd_ee50230;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee50230, buf);
+ ee50230 *dp, &lv = *(dp=new (buf) ee50230());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee50230)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50230)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc230*)(dd0230*), ABISELECT(36,24), "ee50230");
+ check_base_class_offset(lv, (bb30*)(cc230*)(dd0230*), ABISELECT(16,8), "ee50230");
+ check_base_class_offset(lv, (cc230*)(dd0230*), ABISELECT(16,8), "ee50230");
+ check_base_class_offset(lv, (dd0230*), ABISELECT(16,8), "ee50230");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50230.e");
+ test_class_info(&lv, &cd_ee50230);
+ dp->~ee50230();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50230(Test_ee50230, "ee50230", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee50230C1Ev();
+extern void _ZN7ee50230D1Ev();
+Name_Map name_map_ee50230[] = {
+ NSPAIR(_ZN7ee50230C1Ev),
+ NSPAIR(_ZN7ee50230D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc230;
+extern VTBL_ENTRY _ZTI5cc230[];
+extern VTBL_ENTRY _ZTV5cc230[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc230[];
+extern Class_Descriptor cd_dd0230;
+extern VTBL_ENTRY _ZTI6dd0230[];
+extern VTBL_ENTRY _ZTV6dd0230[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0230[];
+static Base_Class bases_ee50230[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc230, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0230, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee50230[];
+extern void _ZN7ee502303barEv();
+extern void _ZN5cc2303fooEv();
+static VTBL_ENTRY vtc_ee50230[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50230[0]),
+ (VTBL_ENTRY)&_ZN7ee502303barEv,
+ 0,
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50230[0]),
+ (VTBL_ENTRY)&_ZN5cc2303fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee50230[];
+extern void _ZN5cc2303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0230__7ee50230[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0230[0]),
+ (VTBL_ENTRY)&_ZN5cc2303fooEv,
+};
+extern void _ZN5cc2303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2306dd0230__7ee50230[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc230[0]),
+ (VTBL_ENTRY)&_ZN5cc2303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc2306dd0230__7ee50230[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee50230[] = {
+ {&(_ZTV7ee50230[4]), 4,10},
+ {&(_ZTV7ee50230[9]), 9,10},
+ {&(_tg__ZTV6dd0230__7ee50230[3]), 3,4},
+ {&(_tg__ZTV5cc2306dd0230__7ee50230[3]), 3,4},
+ {&(_tg__ZTV4bb305cc2306dd0230__7ee50230[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee50230[];
+extern VTBL_ENTRY _ZTV7ee50230[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50230[];
+Class_Descriptor cd_ee50230 = { "ee50230", // class name
+ bases_ee50230, 4,
+ &(vtc_ee50230[0]), // expected_vtbl_contents
+ &(vtt_ee50230[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee50230),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50230),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50230),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60230 : dd0230 {
+ int e;
+ virtual void foo(); // _ZN7ee602303fooEv
+ virtual void bar(); // _ZN7ee602303barEv
+ ~ee60230(); // tgen
+ ee60230(); // tgen
+};
+//SIG(1 ee60230) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee60230 ::foo(){vfunc_called(this, "_ZN7ee602303fooEv");}
+void ee60230 ::bar(){vfunc_called(this, "_ZN7ee602303barEv");}
+ee60230 ::~ee60230(){ note_dtor("ee60230", this);} // tgen
+ee60230 ::ee60230(){ note_ctor("ee60230", this);} // tgen
+
+static void Test_ee60230()
+{
+ extern Class_Descriptor cd_ee60230;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee60230, buf);
+ ee60230 *dp, &lv = *(dp=new (buf) ee60230());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee60230)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60230)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc230*)(dd0230*), ABISELECT(24,20), "ee60230");
+ check_base_class_offset(lv, (bb30*)(cc230*)(dd0230*), 0, "ee60230");
+ check_base_class_offset(lv, (cc230*)(dd0230*), 0, "ee60230");
+ check_base_class_offset(lv, (dd0230*), 0, "ee60230");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee60230.e");
+ test_class_info(&lv, &cd_ee60230);
+ dp->~ee60230();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60230(Test_ee60230, "ee60230", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee60230C1Ev();
+extern void _ZN7ee60230D1Ev();
+Name_Map name_map_ee60230[] = {
+ NSPAIR(_ZN7ee60230C1Ev),
+ NSPAIR(_ZN7ee60230D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc230;
+extern VTBL_ENTRY _ZTI5cc230[];
+extern VTBL_ENTRY _ZTV5cc230[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc230[];
+extern Class_Descriptor cd_dd0230;
+extern VTBL_ENTRY _ZTI6dd0230[];
+extern VTBL_ENTRY _ZTV6dd0230[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0230[];
+static Base_Class bases_ee60230[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc230, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0230, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60230[];
+extern void _ZN7ee602303fooEv();
+extern void _ZN7ee602303barEv();
+static VTBL_ENTRY vtc_ee60230[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60230[0]),
+ (VTBL_ENTRY)&_ZN7ee602303fooEv,
+ (VTBL_ENTRY)&_ZN7ee602303barEv,
+};
+extern VTBL_ENTRY _ZTV7ee60230[];
+extern void _ZN5cc2303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0230__7ee60230[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0230[0]),
+ (VTBL_ENTRY)&_ZN5cc2303fooEv,
+};
+extern void _ZN5cc2303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2306dd0230__7ee60230[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc230[0]),
+ (VTBL_ENTRY)&_ZN5cc2303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc2306dd0230__7ee60230[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee60230[] = {
+ {&(_ZTV7ee60230[3]), 3,5},
+ {&(_tg__ZTV6dd0230__7ee60230[3]), 3,4},
+ {&(_tg__ZTV5cc2306dd0230__7ee60230[3]), 3,4},
+ {&(_tg__ZTV4bb305cc2306dd0230__7ee60230[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee60230[];
+extern VTBL_ENTRY _ZTV7ee60230[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee60230[];
+Class_Descriptor cd_ee60230 = { "ee60230", // class name
+ bases_ee60230, 4,
+ &(vtc_ee60230[0]), // expected_vtbl_contents
+ &(vtt_ee60230[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee60230),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60230),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee60230),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee70230 : virtual dd0230 {
+ int e;
+ virtual void foo(); // _ZN7ee702303fooEv
+ virtual void bar(); // _ZN7ee702303barEv
+ ~ee70230(); // tgen
+ ee70230(); // tgen
+};
+//SIG(1 ee70230) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee70230 ::foo(){vfunc_called(this, "_ZN7ee702303fooEv");}
+void ee70230 ::bar(){vfunc_called(this, "_ZN7ee702303barEv");}
+ee70230 ::~ee70230(){ note_dtor("ee70230", this);} // tgen
+ee70230 ::ee70230(){ note_ctor("ee70230", this);} // tgen
+
+static void Test_ee70230()
+{
+ extern Class_Descriptor cd_ee70230;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee70230, buf);
+ ee70230 *dp, &lv = *(dp=new (buf) ee70230());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee70230)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70230)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc230*)(dd0230*), ABISELECT(36,24), "ee70230");
+ check_base_class_offset(lv, (bb30*)(cc230*)(dd0230*), ABISELECT(16,8), "ee70230");
+ check_base_class_offset(lv, (cc230*)(dd0230*), ABISELECT(16,8), "ee70230");
+ check_base_class_offset(lv, (dd0230*), ABISELECT(16,8), "ee70230");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70230.e");
+ test_class_info(&lv, &cd_ee70230);
+ dp->~ee70230();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70230(Test_ee70230, "ee70230", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee70230C1Ev();
+extern void _ZN7ee70230D1Ev();
+Name_Map name_map_ee70230[] = {
+ NSPAIR(_ZN7ee70230C1Ev),
+ NSPAIR(_ZN7ee70230D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc230;
+extern VTBL_ENTRY _ZTI5cc230[];
+extern VTBL_ENTRY _ZTV5cc230[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc230[];
+extern Class_Descriptor cd_dd0230;
+extern VTBL_ENTRY _ZTI6dd0230[];
+extern VTBL_ENTRY _ZTV6dd0230[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0230[];
+static Base_Class bases_ee70230[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc230, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0230, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee70230[];
+extern void _ZN7ee702303fooEv();
+extern void _ZN7ee702303barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee702303fooEv,_ZTv0_n16_N7ee702303fooEv)();
+extern void ABISELECT(_ZThn16_N7ee702303fooEv,_ZThn8_N7ee702303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70230[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70230[0]),
+ (VTBL_ENTRY)&_ZN7ee702303fooEv,
+ (VTBL_ENTRY)&_ZN7ee702303barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70230[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee702303fooEv,_ZTv0_n16_N7ee702303fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee70230[];
+extern void _ZN5cc2303fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0230__7ee70230[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0230[0]),
+ (VTBL_ENTRY)&_ZN5cc2303fooEv,
+};
+extern void _ZN5cc2303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2306dd0230__7ee70230[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc230[0]),
+ (VTBL_ENTRY)&_ZN5cc2303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc2306dd0230__7ee70230[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_ee70230[] = {
+ {&(_ZTV7ee70230[4]), 4,11},
+ {&(_ZTV7ee70230[10]), 10,11},
+ {&(_tg__ZTV6dd0230__7ee70230[3]), 3,4},
+ {&(_tg__ZTV5cc2306dd0230__7ee70230[3]), 3,4},
+ {&(_tg__ZTV4bb305cc2306dd0230__7ee70230[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee70230[];
+extern VTBL_ENTRY _ZTV7ee70230[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70230[];
+static VTBL_ENTRY alt_thunk_names93[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee702303fooEv,_ZTv0_n16_N7ee702303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee702303fooEv,_ZThn8_N7ee702303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70230 = { "ee70230", // class name
+ bases_ee70230, 4,
+ &(vtc_ee70230[0]), // expected_vtbl_contents
+ &(vtt_ee70230[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee70230),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70230),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70230),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names93,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1230 : virtual cc230 {
+ int d;
+ ~dd1230(); // tgen
+ dd1230(); // tgen
+};
+//SIG(-1 dd1230) C1{ VBC2{ BC3{ VBC4{ Fi} v1 Fi} v1 Fi} Fi}
+
+
+dd1230 ::~dd1230(){ note_dtor("dd1230", this);} // tgen
+dd1230 ::dd1230(){ note_ctor("dd1230", this);} // tgen
+
+static void Test_dd1230()
+{
+ extern Class_Descriptor cd_dd1230;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd1230, buf);
+ dd1230 *dp, &lv = *(dp=new (buf) dd1230());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd1230)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1230)");
+ check_base_class_offset(lv, (aa0*)(bb30*)(cc230*), ABISELECT(32,20), "dd1230");
+ check_base_class_offset(lv, (bb30*)(cc230*), ABISELECT(16,8), "dd1230");
+ check_base_class_offset(lv, (cc230*), ABISELECT(16,8), "dd1230");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1230.d");
+ test_class_info(&lv, &cd_dd1230);
+ dp->~dd1230();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1230(Test_dd1230, "dd1230", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd1230C1Ev();
+extern void _ZN6dd1230D1Ev();
+Name_Map name_map_dd1230[] = {
+ NSPAIR(_ZN6dd1230C1Ev),
+ NSPAIR(_ZN6dd1230D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb30[];
+extern Class_Descriptor cd_cc230;
+extern VTBL_ENTRY _ZTI5cc230[];
+extern VTBL_ENTRY _ZTV5cc230[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc230[];
+static Base_Class bases_dd1230[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb30, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc230, 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 _ZTI6dd1230[];
+extern void _ZN5cc2303fooEv();
+static VTBL_ENTRY vtc_dd1230[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1230[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1230[0]),
+ (VTBL_ENTRY)&_ZN5cc2303fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd1230[];
+extern void _ZN5cc2303fooEv();
+static VTBL_ENTRY _tg__ZTV5cc230__6dd1230[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc230[0]),
+ (VTBL_ENTRY)&_ZN5cc2303fooEv,
+};
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY _tg__ZTV4bb305cc230__6dd1230[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+static VTT_ENTRY vtt_dd1230[] = {
+ {&(_ZTV6dd1230[4]), 4,9},
+ {&(_ZTV6dd1230[8]), 8,9},
+ {&(_tg__ZTV5cc230__6dd1230[3]), 3,4},
+ {&(_tg__ZTV4bb305cc230__6dd1230[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd1230[];
+extern VTBL_ENTRY _ZTV6dd1230[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1230[];
+Class_Descriptor cd_dd1230 = { "dd1230", // class name
+ bases_dd1230, 3,
+ &(vtc_dd1230[0]), // expected_vtbl_contents
+ &(vtt_dd1230[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd1230),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1230),9, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1230),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 ee01230 : dd1230 {
+ int e;
+ ~ee01230(); // tgen
+ ee01230(); // tgen
+};
+//SIG(1 ee01230) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee01230 ::~ee01230(){ note_dtor("ee01230", this);} // tgen
[... 361970 lines stripped ...]
More information about the llvm-commits
mailing list